[英]System.Data.SQLite extension model
我想在C#中為System.Data.SQLite
實現一個函數。 實現SQLiteFunction
接口很容易(在Internet上可以看到示例)。
問題是我應該把編譯后的代碼放在哪里? 我是否需要將源代碼與System.Data.SQLite
項目一起進行編譯? 我是否有更好的選擇,以便我的功能駐留在單獨的DLL中?
澄清:該功能不僅對於我的C#代碼而且對於sqlite3
客戶端(例如)都是已知的,因此我將能夠在執行純文本格式的INSERT命令時使用它。
SQLite 查看您的應用程序的所有程序集,並識別具有[SQLiteFunction]
屬性的類型。 因此,只要在您進行第一個SQLite調用時該程序集已加載,就可以將它們放在任意位置。
如果只是一個或兩個函數,我傾向於將它們放在應用程序的現有程序集之一中。
有一個靜態方法SQLiteFunction.RegisterFunction
,但是文檔說它是...
...一種當前不支持枚舉程序集的Compact Framework的解決方法。
另外,根據文檔我可以告訴我SQLiteFunctionAttribute
:
一個簡單的自定義屬性,使我們能夠輕松地在加載的程序集中找到用戶定義的函數,並在建立連接時在SQLite中對其進行初始化。
和
使用反射,枚舉當前應用程序域中的所有程序集,以查找具有SQLiteFunctionAttribute屬性的類,並進行相應的注冊。
所有用戶定義的函數都會從所有已加載的程序集中自動加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.