2016-12-14 71 views
0

我正在創建一個將被其他人使用的類庫DLL。我不知道該項目將會是什麼,項目名稱將會是什麼等等。當所有這些都說完之後,我將要做的就是將任何項目的DLL交給他們參考。在運行時讀取和寫入DLL值的最佳方法

現在的問題是,我需要一種方式讓我的DLL能夠在運行時讀取和加載項目中的鍵/值。該項目將鍵/值傳遞給我的DLL,並說DLL將執行這些鍵/值的讀取和寫入。我發現,有多種方法可以做到這一點:

1)設置用戶設置/ AppConfig的

2)創建一個新的XML文件的讀寫從

然而這兩種方式不自動化。糾正我,如果我錯了:

對於1)項目方將不得不手動創建一個設置文件與我的DLL需要的鍵/值。

對於2)項目端將不得不手動創建一個XML文件與我的DLL需要的鍵/值。另外我的DLL需要知道引用它的項目保存XML的位置(以便我可以從DLL讀取和寫入)

這是我需要幫助的地方。有沒有一種方法可以在運行時從我的DLL中讀取和寫入值,而無需執行任何手動工作?如果不是,那麼最好的方法是什麼呢?將設置文件移交給將引用我的DLL的人員?

謝謝!

+0

你的dll中獲取/設置值的方法怎麼樣? – Pikoh

回答

1

那麼,客戶端(該項目使用你的dll)將不得不做東西爲了使用你的DLL,正確。 您的選擇是定義一種配置方式或更改界面,以便調用者可以直接提供鍵值對。您仍然可以使用消費應用程序的配置文件中的應用程序設置。您的DLL可以通過使用System.Configuration.ConfigurationManager來訪問它們,而無需知道應用程序運行的位置。 其他項目唯一需要做的就是在配置中提供你需要的設置。 但是,也許你可以詳細闡述你實際嘗試做什麼,「閱讀價值」並不是很具體。

+0

貝傑先生。每個客戶端都有自己的「本地設置文件」,其中包含存儲在Web上的數據庫中的「名稱」,「ID」等鍵/值,並將副本加載到項目中的文件中。用戶從項目exe中更改他們的「名稱」,我的DLL會將其上傳到數據庫並更新本地設置文件。同時,我的DLL需要能夠從本地設置文件中讀取某些檢查,在將它上傳到數據庫之前,它的名字是否與舊名稱相同? – Moo33

+0

好吧,在這種情況下,你的DLL也很容易成爲配置文件的維護者,所以你的接口會公開方法來改變數據(即YourClass.SetUserName(string)')。當調用時,你的方法應用驗證,同步本地配置文件和數據庫。 爲了獲得當前配置,調用應用程序將查詢你的組件(即'YourClass.GetCurrentConfig() ') –

+0

你的意思是有一個單獨的配置文件爲我的DLL?我已經嘗試將我的dll.config設置爲「始終複製」,但似乎並未出現在我的輸出文件夾中。或者你的意思是,將項目的Settings文件的引用傳遞給我的dll? – Moo33

相關問題