gpt4 book ai didi

c# - 如何保存带有自定义配置部分的配置文件?

转载 作者:行者123 更新时间:2023-12-04 18:03:01 25 4
gpt4 key购买 nike

我有一个应用程序需要在运行时将自定义部分插入其 app/web.config。通常这可以通过以下方式完成:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var mySection = new MyCustomSection { SomeProperty="foo" };

config.Sections.Add("mySection", mySection);
section.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);

我在这里遇到的问题是我添加到配置文件的部分需要它自己的序列化处理程序。我知道这可以在读取配置时通过简单地创建 IConfigurationSectionHandler 的实现来轻松处理,但我似乎无法找到一种方法来实际编写配置部分本身.

查看 MSDN文档 ConfigurationSection 类确实有一个 SerializeSection/DeserializeSection 方法,但它们被标记为内部并且不能被覆盖。我还在 SectionInformation 中找到了 GetRawXml/SetRawXml 方法,但它们被标记为基础设施级调用,不应由用户代码直接调用。

我正在尝试做的事情是否可行?这似乎是一个非常简单的用例。

谢谢。

最佳答案

这是在 System.Configuration.Configuration 类上保存的方法。

System.Configuration.Configuration configRoot = null;
if(HttpContext.Current!=null)
configRoot = WebConfigurationManager.OpenWebConfiguration(_urlRoot);
else
configRoot = ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal);

ConfigurationSectionGroup configGroup = configRoot.GetSectionGroup("mySections");
foreach (ConfigurationSection configSection in configGroup.Sections)
{
//Do some updating that needs to be saved.
}
configRoot.Save();

关于c# - 如何保存带有自定义配置部分的配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31839505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com