簡體   English   中英

System.Data.SQLite擴展模型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM