2014-11-14 84 views
2

我正在開發一個提供一些數據到Web API的Windows服務。作爲其中的一部分,我需要提交我與C#Windows服務保存設置的位置屬性設置

Guid.NewGuid(): 

生成GUID此GUID是每臺機器的個人,永遠不會改變,而且是誰登錄的所有用戶一樣的。我與掙扎的地方實際存儲這個雖然。我遇到了Properties.Setting這看起來很完美,但如果我將範圍擴展到Application而不是User,它不會讓我設置屬性,因爲它是隻讀的。

如何和我在哪裏存儲GUID?它只會生成一次(當服務在PC上首次啓動時)。

+0

如果是我的話,我將存儲這樣的數據,在註冊表中的服務。 – 2014-11-14 13:47:19

回答

5

在你的情況,你可以以訪問和在應用程序中設置寫GUID使用ConfigurationManager Class。從上面的例子鏈接:

static void AddUpdateAppSettings(string key, string value) 
{ 
    try 
    { 
     var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     var settings = configFile.AppSettings.Settings; 
     if (settings[key] == null) 
     { 
      settings.Add(key, value); 
     } 
     else 
     { 
      settings[key].Value = value; 
     } 
     configFile.Save(ConfigurationSaveMode.Modified); 
     ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name); 
    } 
    catch (ConfigurationErrorsException) 
    { 
     Console.WriteLine("Error writing app settings"); 
    } 
} 

你可以用它喜歡:

AddUpdateAppSettings("MachineGuid", Guid.NewGuid().ToString()); 
+0

這正是我所追求的。工作正常! – Trinitrotoluene 2014-11-14 14:08:21