2014-11-14 78 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