2010-07-04 115 views
0

我的項目配置多個項目

我正在寫VS使用C#2.0其中包括在數個圖書館和兩個可執行文件,在各自的項目文件和相同的解決方案的各個部分WinForm應用程序。

每個項目都有自己的Settings Class配置參數。一些參數是項目特定的,一些項目需要多個項目(但全部不需要),另一些參數依賴於通過USB連接到用戶機器的硬件設備的模型(並在運行時選擇)。

設置類包含枚舉,屬性和加載和保存方法。

目前我有一個屬性網格的窗體,實例化所有類的所有設置,並讓用戶更改配置。它屬於主要的可執行項目。

我的問題

我需要爲用戶配置了整個應用程序(我們稱之爲配置)的方式,所以我試圖創建另一個項目,該項目將與屬性網格形式,但以配置器和我的主要可執行文件之間的循環引用問題結束。 配置器需要自行運行或從主可執行文件調用。

此外,我不知道一個好的方法來複制一個共同參數的值更改爲其對應。例如,如果參數p是共同的項目,設置類當用戶改變值時,配置器將不得不改變BP值(與同爲反過來)。我認爲解決這個問題的唯一解決方案涉及屬性網格的事件處理程序的PropertyValueChanged if子句的噩夢。

感謝,Heiddy

回答

0

爲了減少循環依賴,你必須包括抽象類和接口相應。

基礎庫:由所有「數據」類組成,實現IPropertyChangedNoitifier並且應始終保持一致。加載/保存配置應該保存在這個庫本身中。

配置庫:引用基礎庫並執行配置更改並調用有關配置更改的某些事件。但是,該項目只能包含要配置的UI;

配置項目:加載並執行配置庫的UI。

實際項目:引用基礎庫和配置庫,您可以從此項目以及從其他項目加載配置UI。

談到設置的運行時複製,您可以通過File System Watcher觀察文件內容更改的事件,並在檢測到文件更改後的一定毫秒內重新加載配置。

+0

感謝您的回答! 我剛剛開始閱讀有關實現IpropertyChangedNotifier。 – 2010-07-04 14:07:00