2010-05-13 75 views
8

好吧,我知道這可能是一個設計問題,所以我很樂意就此發表評論。如何在Visual Studio中跨多個項目共享配置設置?

我有一個Visual Studio Web應用程序解決方案。我有三個項目,分別是UserInterface,BusinessLogic和DataAccess。

我不得不存儲一些用戶定義的設置,並在配置文件中創建了configSections。

我通過繼承自.NET的ConfigurationSection基類的類來訪問這些configSections。

因此,簡而言之,我有一個單獨的configSection和相應的configSection項目,我從該項目繼承ConfigurationSection訪問配置節設置。

這個作品都很甜美。但是如果我需要在多個項目中使用任何設置,則會出現問題。因此,如果我需要使用在UserInterface項目configSection中定義的設置,比方說,BusinessLogic項目,我必須在BusinessLogic的configSection中實際製作該設置的副本。這最終會在多個configSections中複製相同的設置。

這是不是有點過剩?在一個單獨的文件

回答

0

使用你的例子:

只需創建業務邏輯中的項目設置,然後露出一個getter用戶界面項目。

然後UI可以查詢BL的值。您的配置設置只能在一個地方 - 最低級別。

但是,如果用新的項目替換較低級別的項目,則必須確保設置也被複制。如果設置處於數據訪問級別,這可能只是一個問題,因爲這是最可能發生更改的設置(例如,不同的數據庫提供程序)。

1

從來沒有真正做到了這一點,但在理論上它可能工作...

當你定義你的自定義配置部分,將其configSource到外部文件(whatever.config)。這個外部文件應該被添加到解決方案而不是項目中。它將顯示在「解決方案項目」下。在每個項目中,添加一個現有文件,瀏覽到whatever.config,單擊添加按鈕上的下拉列表並選擇「添加爲鏈接」。

Whatever.config將是一個單獨的文件,您可以在解決方案項下編輯它,並在編譯時將其複製到每個應用程序中。

+0

是的,我想的是相同的路線。我唯一的問題是我想讓處理程序類(它解析來自whatever.config的信息)作爲解決方案項目。所以config +它的解析器只存在一次,並被鏈接到多個項目中。 雖然問題不是視覺工作室會編譯一個在解決方案項目級別的類嗎?我一直無法做到。 – neebz 2010-05-23 02:40:58

相關問題