1

我想System.Data.SQLite在 C# 中实现一个函数。实现SQLiteFunction接口很容易(参见 Internet 上的示例)。

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

澄清:该函数应该不仅对我的 C# 代码而且对sqlite3客户端(例如)都是已知的,因此我将能够在执行以纯文本形式出现的 INSERT 命令时使用它。

4

2 回答 2

1

SQLite查看应用程序的所有程序集并识别具有该[SQLiteFunction]属性的类型。因此,您可以将它们放在您喜欢的任何位置,只要在您进行第一次 SQLite 调用时已经加载了该程序集。

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

于 2010-07-06T08:20:07.530 回答
0

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

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

此外,从我可以根据文档得知SQLiteFunctionAttribute

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

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

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

于 2010-07-06T08:19:03.693 回答