2009-06-22 85 views
1

道歉,如果這是重複的,但我還沒有設法找到這個問題被直接詢問。DLL應該有自己的配置文件嗎?

這裏的一般意見(這是我和他對面的)是他們不應該,原因是DLL可以共享;因此在DLL中使用特定於應用程序的信息是無稽之談。如果信息不是特定於應用程序的,則可以使用常量。

還有一個問題是,假設DLL沒有自己的配置文件,DLL是否應該使用裝載DLL的可執行文件的配置文件,或者作爲某種構造函數的一部分傳遞相關數據。我們的觀點是後者,因爲它使得它更易於測試,缺點是有時需要將大量數據傳遞給dll。

意見?

+0

我猜你的意思是.NET的DLL的? – Kev 2009-06-22 10:34:16

回答

1

沒有理由爲什麼你不能兩全其美的方面「使用配置文件進行簡單配置」和「可測試」。有一個可以從配置文件創建實例的靜態方法,但也提供了更多控制和可測試性的構造函數。靜態方法只會獲取設置並調用構造函數。

我相信可以像創建任何其他項目一樣爲DLL創建設置類,然後您只需將實際文本放入應用程序的配置文件而不是DLL中。基本上忽略爲庫項目生成的app.config,除了用作應用程序中央模板的模板。

另外,使用類似Spring.NET來管理這樣的事情:)

0

通常,我想你應該將相關信息傳遞給你正在調用的函數,或者在你創建的DLL中定義的對象中設置相關屬性。我想這就是爲什麼.NET不真的支持DLL的配置文件(你可以創建它們,但是它們在運行時不會被使用)。

我有一個場景,其中DLL正在讀取配置文件,但這是非常特殊的:.NET DLL將對象導出爲COM對象以供Microsoft Navision使用。它使用XML-RPC接口與保理銀行進行通信。

雖然安裝了每個用戶的機器上的DLL,對於接口的配置是所有用戶共用的,所以我必須放在網絡驅動器上的配置是網頁每隔PC和配置(URL,證書等上映射)從該公共文件讀取。

無論這是很好的做法是由讀者,但在那種情況下有一個共同的配置文件只是有道理......

相關問題