如何使配置管理器工作
本文关键字:管理器 工作 配置管理 配置 何使 | 更新日期: 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或其他示例:加载自定义配置文件