C#Windows Service保存设置的位置Properties.Setting

Tri*_*ene 2 c#

我正在开发一个Windows服务,它将一些数据提交给web api.作为其中的一部分,我需要提交我正在生成的GUID

Guid.NewGuid():
Run Code Online (Sandbox Code Playgroud)

这个GUID将是每台机器的个人,永远不会改变,并且对于所有登录的用户都是相同的.我在努力实际存储它的位置.我遇到了看起来很完美的Properties.Setting,但是如果我使用Application而不是User,它将不会让我设置属性,因为它是只读的.

我如何以及在何处存储GUID?它只会生成一次(当服务首次在PC上启动时).

nat*_*nho 6

在您的情况下,您可以使用ConfigurationManager类来访问和编写应用程序设置中的GUID.从上面的链接示例:

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以使用它:

AddUpdateAppSettings("MachineGuid", Guid.NewGuid().ToString());
Run Code Online (Sandbox Code Playgroud)