簡體   English   中英

多個項目的配置

[英]Configuration for multiple projects

我的項目

我正在使用VS C#2.0編寫Winform應用程序,該應用程序由幾個庫和兩個可執行文件組成,每個文件都位於其自己的項目文件中,並且屬於同一解決方案的所有部分。

每個項目都有其自己的設置類,其中包含配置參數。 一些參數是特定於項目的,一個以上的項目需要一些(但並非所有項目都需要),而其他參數則取決於通過USB連接到用戶計算機的硬件設備的型號(並在運行時選擇)。

設置類由枚舉,屬性以及Load和Save方法組成。

目前,我有一個帶有屬性網格的表單,該表單實例化了所有類的所有設置,並允許用戶更改配置。 它屬於主要的可執行項目。

我的問題

我需要一種讓用戶配置整個應用程序的方法(我們稱其為configurator ),所以我嘗試創建另一個項目,該項目的形式應與屬性網格一起使用,但最終在配置器和我的主設備之間出現循環引用問題可執行文件。 配置器需要自行運行或從主可執行文件中調用。

另外,我不知道將對公共參數值所做的更改復制到對應參數的好方法。 例如,如果參數p對於項目AB的設置類是公用的,則當用戶更改Ap值時, 配置程序將必須更改Bp值(反之亦然)。 我想解決的唯一解決方案涉及屬性網格的PropertyValueChanged事件處理程序上的if子句的噩夢。

謝謝,海蒂

為了減少循環依賴,您必須相應地包含Abstract類和Interfaces。

基礎庫:由所有“ Data”類組成,實現IPropertyChangedNoitifier,並且在整個過程中應保持一致。 加載/保存配置應保存在此庫本身中。

配置庫:引用基本庫並進行配置更改,並調用有關配置更改的某些事件。 但是,此項目必須僅包含要配置的UI。

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

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

關於設置的運行時復制,您可以通過File System Watcher監視文件內容更改的事件,並在檢測到文件更改后的特定毫秒數后重新加載配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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