我想在C#中为System.Data.SQLite
实现一个函数。实现SQLiteFunction
界面很简单(通过Internet查看示例)。
问题是我应该在哪里放置编译的代码?我是否需要与System.Data.SQLite
项目一起编译源代码?我有更好的选择,以便我的函数将驻留在一个单独的DLL中吗?
澄清:该函数不仅应该知道我的C#代码,还应该知道sqlite3
客户端(例如),所以我可以在执行INSERT时使用它以纯文本形式出现的命令。
答案 0 :(得分:1)
SQLite looks at all of your application's assemblies并识别具有[SQLiteFunction]
属性的类型。所以你可以把它们放在你喜欢的任何地方,只要在你第一次调用SQLite时已经加载了这个程序集。
如果它只是一个或两个函数,我倾向于将它们放在你的应用程序的一个现有程序集中。
答案 1 :(得分:0)
有一个静态方法SQLiteFunction.RegisterFunction
,但文档说它是......
... Compact Framework的解决方法,目前不支持枚举程序集。
此外,据我所知,基于文档SQLiteFunctionAttribute
:
一个简单的自定义属性,使我们能够在加载的程序集中轻松查找用户定义的函数,并在连接时在SQLite中初始化它们。
和
使用反射,枚举当前appdomain中的所有程序集,查找具有SQLiteFunctionAttribute属性的类,并相应地注册它们。
所有用户定义的函数都是从所有已加载的程序集中自动加载的。