这是从以下复制的示例:
How to read custom config section in app.config in c#
我想阅读app.config中的以下自定义部分:
<StartupFolders>
<Folders name="a">
<add folderType="Inst" path="c:\foo" />
<add folderType="Prof" path="C:\foo1" />
</Folders>
<Folders name="b">
<add folderType="Inst" path="c:\foo" />
<add folderType="Prof" path="C:\foo1" />
</Folders>
</StartupFolders>
这也是我的情况。但是,我不想创建用于处理值的自定义类,在web.config中定义此类,然后最终使用它。它对我的需求很重。
相反,我想做一些非常简单的事情 - 将一个部分检索为XML。然后我可以使用常规Linq.Xml来解析它。这样,我不需要为每个部分创建新类,我不需要声明它们。为了我的目的,一方面是足够的,另一方面是最小的(我做了一次,嵌套部分的键值映射器)。即完美。
唯一缺少的是(我的问题) - 如何将web.config部分作为XML获取? 关于该部分的说明:
所以我不是在寻找一种解决方法,如何在appSettings中将整个部分作为值进行挤压,但我真的在寻找一种方法来将正确的部分作为XML。
我想从ConfigManager(!)获取它,因为这样我就不必处理解析我应该阅读哪个web.config等等。比手动模仿web.config优先级更容易犯错。
请原谅我提醒这一点,但请避免“回答”,不要这样做,每个部分都要使用自定义类等等。我已经考虑过了,并且选择了它。 < / p>
答案 0 :(得分:2)
我认为您必须手动执行此操作并将Web配置加载到内存中:
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("~/Web.config"));
或者您需要创建要避免的自定义配置部分。
答案 1 :(得分:-1)
完全未经测试,但你可以使用这样的东西吗? :
ConfigurationSection exampleSection =
(ConfigurationSection)ConfigurationManager
.GetSection("system.web/exampleSection");
然后可能使用exampleSection.ElementInformation
来获取更多信息?