如何使配置管理器工作

本文关键字:管理器 工作 配置管理 配置 何使 | 更新日期: 2023-09-27 18:32:56

我有 2 个视图(控制台和 wpf)和 1 个带有程序逻辑的 dll。在 1 wpf 中,我想设置一些用户设置,然后在控制台中使用它们,即使在 wpf 关闭后也是如此。但是设置总是在关闭 wpf 后重置。我正在尝试保存对象列表,所以这就是为什么代码也使用MemoryStream,BinaryFormatter等,但我认为这对ConfigurationManager的功能没有影响。

这是我的代码示例:

    public List<CsprojFile> FilesArray
    {
        get
        {
            try
            {
                using (
                    MemoryStream memoryStreams =
                        new MemoryStream(Convert.FromBase64String(ConfigurationManager.AppSettings["filesArray"])))
                {
                    BinaryFormatter binaryFormatter = new BinaryFormatter();
                    return (List<CsprojFile>) binaryFormatter.Deserialize(memoryStreams);
                }
            }
            catch
            {
                return new List<CsprojFile>();
            }
        }
        set
        {
            using (MemoryStream memoryStream = new MemoryStream())
            {
                BinaryFormatter binaryFormatter = new BinaryFormatter();
                binaryFormatter.Serialize(memoryStream, value);
                memoryStream.Position = 0;
                byte[] buffer = new byte[(int)memoryStream.Length];
                memoryStream.Read(buffer, 0, buffer.Length);
                ConfigurationManager.AppSettings["filesArray"] = Convert.ToBase64String(buffer);
            }
        }
    }

如何使配置管理器工作

ConfigurationManager从应用程序App.Config读取,如果您有两个应用程序,那么您将从两个配置中读取,因为它们是特定于应用程序的。

如果要在应用程序之间共享配置,则需要创建两个应用程序都可以访问的某种持久存储,数据库,解释的XML文件,或者可以使用ConfigurationManager在特定位置打开配置文件。

另一种选择是将您想要的设置放在机器配置中,然后两个应用程序都会读取这些设置,只要它们在同一台机器上运行,我就不建议这样做,只是为了完整性而提到它。

使用ConfigurationManager从已知位置读取配置文件:

var config = ConfigurationManager.OpenExeConfiguration(@"''file'path'here.someExtension");

文档:https://msdn.microsoft.com/en-us/library/ms224437(v=vs.110).aspx或其他示例:加载自定义配置文件