System.Data.SQLite扩展模型

时间:2010-07-06 08:10:56

标签: c# sqlite system.data.sqlite

我想在C#中为System.Data.SQLite实现一个函数。实现SQLiteFunction界面很简单(通过Internet查看示例)。

问题是我应该在哪里放置编译的代码?我是否需要与System.Data.SQLite项目一起编译源代码?我有更好的选择,以便我的函数将驻留在一个单独的DLL中吗?

澄清:该函数不仅应该知道我的C#代码,还应该知道sqlite3客户端(例如),所以我可以在执行INSERT时使用它以纯文本形式出现的命令。

2 个答案:

答案 0 :(得分:1)

SQLite looks at all of your application's assemblies并识别具有[SQLiteFunction]属性的类型。所以你可以把它们放在你喜欢的任何地方,只要在你第一次调用SQLite时已经加载了这个程序集。

如果它只是一个或两个函数,我倾向于将它们放在你的应用程序的一个现有程序集中。

答案 1 :(得分:0)

有一个静态方法SQLiteFunction.RegisterFunction,但文档说它是......

  

... Compact Framework的解决方法,目前不支持枚举程序集。

此外,据我所知,基于文档SQLiteFunctionAttribute

  

一个简单的自定义属性,使我们能够在加载的程序集中轻松查找用户定义的函数,并在连接时在SQLite中初始化它们。

  

使用反射,枚举当前appdomain中的所有程序集,查找具有SQLiteFunctionAttribute属性的类,并相应地注册它们。

所有用户定义的函数都是从所有已加载的程序集中自动加载的。