【发布时间】:2017-04-10 08:42:33
【问题描述】:
我正在以编程方式生成一个配置文件。
Program.cs
string config = new ConfigBuilder().GenerateConfigFile(false);
ConfigBuilder.cs
public string GenerateConfigFile(bool isSettingEnabled)
{
return "<configuration>...</configuration>";
}
结果
<configuration>
<appSettings>
<add key="IsSettingEnabled" value="false" />
</appSettings>
</configuration>
使用 ConfigurationManager 之类的东西,我希望无需先将文件写入磁盘即可从配置变量中读取设置。换句话说,做类似的事情:
ConfigurationManager.OpenFromMemory(config);
var isSettingEnabled = ConfigurationManager.AppSettings["IsSettingEnabled"];
但是,ConfigurationManager 似乎只能处理文件。
有没有一种简单的方法来解释配置而无需自己解析 XML?
【问题讨论】:
-
如果您只打算将生成的配置文件保存在内存中,那么为什么不只维护一个简单的字典呢?或者,您最终希望将此配置文件写入磁盘?
-
发生的事情比我所展示的要多。我只是试图让示例保持清晰并专注于以下问题:我可以读取作为字符串 iso 文件的配置吗?
-
对。无论如何,这是不可能的。 ConfigurationManager 类本身并不读取配置。我们使用不同方法(OpenExeConfiguration、OpenMappedConfiguration 等)获得的文件路径最终被 Configuration 类用于从文件路径读取物理文件。因此,您不可能在内存流等中拥有配置并使用 ConfigurationManager 读取它。如果您打算使用 ConfigurationManager 类,您最终必须将其保存到磁盘