2010-01-23 69 views
3

如果我去項目 - >我的項目屬性 - >設置我可以爲整個項目創建一個設置文件。然而,假設每個類都需要自己的配置文件。在課堂上有沒有類似的做法?如何爲每個類創建C#配置文件?

舉例來說,假設我有一個帶福特和本田子類的父類汽車。我想擁有一個單獨的屬性YEAR和一段代碼來讀取YEAR屬性。我可以通過擁有兩個具有相同YEAR屬性的配置文件來實現。如果我使用Ford.YEAR和Honda.YEAR,那麼需要兩個獨立的代碼段來解析可能會讓大量課程變得混亂的數據。

+0

是的,但通過它的聲音,你正在談論參考數據。也許有更好的選擇來加載它而不是配置文件,例如數據庫,資源文件,XML等? – RobS 2010-01-24 03:05:23

回答

2

這不是真的爲此設計的。

您可以使用System.Configuration.ConfigurationSettings類在代碼中明確打開文件以從中讀取設置。這將工作,但設計師將不會幫助您創建您的設置文件。

您是否有類寬設置的問題?

可能對您有幫助的另一種方法是創建一個可以放入文件的自定義配置部分。然後你可以將你的每個類的設置分成它自己的配置部分。這可能適合你的目的?

2

配置數據存儲在其配置文件中的可執行文件(無論項目中「設置」文件的數量如何,它都是單個文件)並且不是特定於類的。您可以爲您的設置鍵配置選項設置命名約定,例如ClassName.ConfigName

0

您必須按照其他人的建議手動執行此操作。不過,我強烈建議不要這樣做,因爲我認爲你最終會遇到配置噩夢。

0

根據其他答案,沒有配置文件不是類特定的,你最好創建一個處理檢索和設置配置的類(一個ConfigManager風格的接口)。

雖然我不得不問你,你真的想要每個類的配置?

這聽起來像一個配置管理惡夢場景。您必須根據每個班級的情況來配置缺失或無效的場景 - 並相應採取相應步驟。

如果您的設計需要按類配置,也許您會更好地將其存儲在數據庫中或使用其他介質?

1

,你可以爲你的子類創建特定的部分:How to: Create Custom Configuration Sections Using ConfigurationSection

當您啓動一個.NET應用程序,它需要你的切入點裝配的配置文件和多達加載到內存中。但只有一個。

所以,如果你有一個MyApplication.exe它使用MyLibrary.dll並且都有配置文件,只需要加載MyApplication.exe.config

0

許多當前的IoC容器將允許您通過依賴注入(DI)的可能性來做這樣的事情。事實上,當XML配置在DI領域中風靡一時時,你幾乎可以將所有這些都變成現實。今天,許多IoC容器都支持設置依賴關係的編程方式,您可以很容易地掛接到任何想要提供的XML文件。看看這個例子與IoC容器StructureMap

IContainer c = new Container(); 
c.Configure(ce=> 
    ce.For(typeof(A)).Use(typeof(A)).WithProperty("Test").EqualTo("Hello")); 
var a = c.GetInstance<A>(); 
Debug.Assert(a.Test == "Hello"); 

通過分析包含了像針對性的類型信息,屬性的名稱,其值的XML文件,然後調用上述API,你可以得到你想要的東西。

相關問題