2011-12-12 146 views
2

對於.Net世界來說,這是一個相當新的東西,我對將應用程序設置存儲在WPF應用程序的位置和方式感到非常困惑。對.Net應用程序設置框架感到困惑

我一直看到對Properties.Settings.Default的引用,但是在我的WPF應用程序中無法解析,而且我找不到實際的類是爲了找到要裝入的程序集。這是僅限於WinForms技術嗎?

我也發現ConfigurationSettings,這似乎已被棄用,並且ConfigurationManager,AppSettings, ApplicationSettingsSettings!我相信很多這些工作在一起,但是我在清理什麼屬於一起,什麼是舊的或與WPF無關的問題上遇到了實際麻煩。

任何人都可以說出一個新手的基本選項嗎?

+0

Properties.Settings.Default是生成Settings.Settings的代碼文件中定義的變量。 –

回答

3

奇怪,沒有人能回答這個問題,所以我做了一些更多的挖掘,並會在萬一別人在這裏記錄我的結論是困惑,我說:

  • ConfigurationSettings已死亡。 (< = .Net 1.1)。它用於通過AppSettings成員公開一組名稱/值對。

  • ConfigurationManager是替換(> .Net 2)。它生活在System.Configuration.dll,是所有新配置的基礎。它是一個靜態類,因此可以在任何地方訪問。它還公開了一組稱爲AppSettings的名稱/值對,大概是爲了向後兼容。

  • AppSettings不是類型安全的,它實際上是字符串對。

  • ApplicationSettings似乎是指ApplicationSettingsBase,這是作爲新的風格類型安全設置的基類。子類包含映射到設置的成員。 ConfigurationManager仍然用於管理/序列化這些。

  • Settings是一個工具生成的上面通過添加「設置文件」到您的項目,它允許設置的設計時間編輯產生的靜子類。它會生成到您的項目的屬性名稱空間中,因此可以通過您的應用中的任何位置的Properties.Settings訪問。雖然在整個文檔中都提到了WinForms,但它似乎也適用於WPF。

如果您不想使用設置文件,ConfigurationManager也可以直接使用您自己的自定義類來使用。使用的概述一些綜合性鏈接:

Unraveling the Mysteries of .NET 2.0 Configuration

Decoding the Mysteries of .NET 2.0 Configuration

Cracking the Mysteries of .NET 2.0 Configuration

所有這些設置會出現得到serialsied到App.config文件,雖然我見過的引用分離應用程序設置文件,所以我可能是錯誤的。

0

如果沒有很多設置要保存,爲什麼不使用Windows註冊表? File System and the Registry (C# Programming Guide)

沒有什麼神奇的ConfigurationManager等你可以使用自己的設置對象,並從XML序列化/反序列化。

請參閱Application class以瞭解應用程序數據路徑。

至於Properties.Settings.Default在您的應用程序不解決,Solution Explorer - >項目 - >Add - >New Item - >Settings File。這將自動生成Properties.Settings類,允許您在設計時編輯您的應用程序設置。然後,你將能夠調用Properties.Settings.Default.Save()

+0

我可以高興地把它自己滾動到註冊表或文件,但我雖然我會保存自己一些代碼給出明顯的現有機制。 – GazTheDestroyer

+0

另外,Application類是一個WinForms類。我的應用程序是WPF – GazTheDestroyer

+1

@GazTheDestroyer它在WinForms命名空間是的,但是你可以在沒有問題的WPF應用程序中使用它;我做。同樣,我用C#編寫,並使用'Microsoft.VisualBasic.FileIO.TextFieldParser'類 - 也沒有問題。這只是命名空間。 –