基本上,当涉及到连接字符串和配置键值对时,App.config和Web.config很容易处理。
但是如何访问这两个文件的其他部分?
The only way I can find表示必须创建configuration/configSections/section
才能向配置文件添加其他设置。这是错误的,因为几个.NET组件实际上访问自定义设置而不使用configuration/configSections/section
。例如,在处理诊断设置时,我可以使用以下部分:
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="Samples">
<listeners>
<add name="ConsoleListener" type="System.Diagnostics.ConsoleTraceListener"/>
</listeners>
</source>
</sources>
</system.diagnostics>
无需向文件添加任何configSection。
如何在我自己的代码中做同样的事情?
答案 0 :(得分:1)
@Vladislav的评论涵盖了它。配置部分需要始终定义,但不一定在web / app配置文件中,因为配置文件具有层次结构。所以标准部分是在标准的machine.config文件中定义的。
如果您需要可跨多个应用程序访问的部分,则可以修改machine.config文件并在其中指定它们。但是,这不是你应该在99.99%的编程情况下做的事情。它所做的只是隐藏开发人员的部分细节。
请记住,如果您要这样做,则必须向所有计算机提供定义此部分的dll,并在应用程序修改它时保持更新。这有一个显着的维护开销,所以你必须绝对肯定这样做有一个真正的好处。
你问的简单答案是肯定的,你可以做到,但你永远不应该这样做。偶尔,这是错误的。
答案 1 :(得分:1)
您提到的部分未定义,它是在机器配置文件(.NET的全局)中定义的。如果需要自定义部分,则需要在文件的开头定义它们并定义代表它们的类,因此.NET知道如何处理相应的对象。
如果您只需要在不获取对象和所有内容的情况下访问某些设置,则可以将该部分定义为仅使用ConfigSectionHandler
,然后直接访问XML文档,如this(毕竟,配置file只是另一个XML文件。)
我强烈建议不转到直接访问路线,而是使用常规方式,即this guide。通过验证所有内容并使其易于从代码中访问,它将为您省去一些麻烦。这是最初建立的PITA,但它是值得的。
答案 2 :(得分:0)
您可以在app / web.config中定义自己的部分,查看this great tutorial。