2013-03-21 40 views
0

我有一個應用程序我工作,它應該通過一個XML文件(名爲Settings.txt)保存和載入設置 現在,這裏我使用的代碼:製作Settings.txt文件 - 如何以正確的方式加載設置?

public class Settings 
{ 
    public bool Selected_64Bit { get; set; } 
    public bool Supported_64Bit { get; set; } 
    public bool FirstTime { get; set; } 
} 

static void SaveSettings(Settings settings) 
{ 
    var serializer = new XmlSerializer(typeof(Settings)); 
    using (var stream = File.OpenWrite("settings.txt")) 
    { 
     serializer.Serialize(stream, settings); 
    } 
} 

static Settings LoadSettings() 
{ 
    if (!File.Exists("settings.txt")) 
     return new Settings(); 

    var serializer = new XmlSerializer(typeof(Settings)); 
    using (var stream = File.OpenRead("settings.txt")) 
    { 
     return (Settings)serializer.Deserialize(stream); 
    } 
} 

現在,我需要加載的設置換成新的Settings()。 我發現,這樣做:

Settings [VAR] = new Settings() 

將作出新的Settings()與所有false,但我想加載保存設置.. 我很困惑並不能說明這對自己...

最終產品應當:

  • 檢查是否存在settings.txt
  • 如果確實如此 - 加載設置到一個新的SettingsSetting(在我的情況)。
  • 如果沒有 - 進行新設置並保存。

我希望有人理解並能幫助我。 順便說一句 - 我在C#中並不是那麼優秀,我根本沒有得到get \ set thingy,至於返回和其他類似的方法。我知道基礎知識,如果我贏了'需要更復雜的技術。 如果我必須使用更復雜的技術 - 請深入解釋它們,因爲我不知道。

+2

.NET框架已經提供了一個真正非常好的應用程序和用戶設置系統。任何你不使用它的理由? – 2013-03-21 19:21:34

+0

.net設置不會像我需要的那樣工作 - 它比任何我設置的東西更復雜 – 2013-03-28 20:22:05

+0

它並不那麼複雜。它是'Properties.Settings.Default.MySetting'來獲取和設置'MySetting',然後用'Save'保存。它在設置文件不存在時處理默認值,並且在Visual Studio中有一個用於添加新屬性的好界面。看[這裏](http://msdn.microsoft.com/en-us/library/aa730869%28v=VS.80%29.aspx) – 2013-03-28 20:44:01

回答

1

如您有它設置,你需要做的:

Settings mySettings = Settings.LoadSettings(); 

這將運行靜態LoadSettings方法,並返回一個Settings對象。

+0

謝謝!!!!!!!!!!!!!!! !!!!!!!!!! – 2013-03-28 20:21:00

0

馬特已經寫

Settings mySettings = Settings.LoadSettings(); 

將做的工作。

如果你有一個應用程序,你也可以使用它的設置。你通過Properties.Settings.Default得到這些設置,並且在你的項目設置中你可以定義一些屬性。

相關問題