C# Windows 服务在哪里保存设置 Properties.Setting

标签 c#

我正在开发一个向 Web API 提交一些数据的 Windows 服务。作为其中的一部分,我需要提交一个我用

生成的 GUID
Guid.NewGuid():

这个 GUID 将是每台机器单独的,永远不会改变,并且对于所有登录的用户都是一样的。不过我正在努力解决实际存储它的位置。我遇到了看起来很完美的 Properties.Setting,但如果我将范围限定为 Application 而不是 User,它不会让我设置该属性,因为它是只读的。

如何以及在哪里存储 GUID?它只会生成一次(当服务第一次在 PC 上启动时)。

最佳答案

在您的情况下,您可以使用 ConfigurationManager Class以便在您的应用程序设置中访问和写入 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");
    }
}

你可以像这样使用它:

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

关于C# Windows 服务在哪里保存设置 Properties.Setting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26931401/

相关文章:

C# (500) 内部服务器错误覆盖原始异常

c# - 哪一行代码仍在使用该文件而不释放它?

c# - 有一个状态机作为另一个状态机的守卫

c# - 使用 Parallel.ForEach 限制每秒启动的 API 请求数

c# - C# 中的 BitmapSource 对象出现问题

c# - Google 不允许网络客户端吗?

c# - 在c#中如果值等于0.7向上如何四舍五入?

c# - 3 层应用程序 - 导航属性

javascript - 添加默认值以使用 Angular 2 选择

c# - 获取第一个执行程序集返回 null