我在.Net中的配置文件有些困难:我完全理解它的本质以及它们有什么用处,但我想念的部分是这样的:配置文件是xml文件,在运行时反序列化为托管对象(或OBJECTS? ??)在托管堆上。但那些对象是谁?
为了澄清我的问题,我将举一个具体的例子: 如果我编写WCF服务,我可以使用 System.serviceModel 元素配置我的服务。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<!-- and this is wherer the service configuration goes... -->
</system.serviceModel>
</configuration>
现在,如何使用via代码访问此对象?对象的名称和类型是什么?我在考虑ConfigurationManager - 但它不存在。
顺便说一句,如果你想知道,我发现这个问题如此相关的原因是:如果我知道配置文件的方案,我会知道如何最好地利用它...答案 0 :(得分:3)
根元素对应Configuration
类并反序列化。
它包含许多不同的其他可能元素和一些可自定义的部分,通常使用ConfigurationSection
类,可以从中继承和使用。
system.serviceModel
部分只是一个这样的部分 - 您可以找到有关该元素本身的更多信息here以及它反序列化的对象 - ServiceModelConfigurationGroup
。
ConfigurationManager
是一个静态类,提供对反序列化配置的访问(例如,您可以使用GetSection
方法获取配置节。)
答案 1 :(得分:1)
所有配置节都由“配置节处理程序”处理。所有这些都需要在配置文件的<configSections>
http://msdn.microsoft.com/en-us/library/ms228256.aspx元素中指定。如果未在那里定义它们,则已在machine.config或全局web.config文件中定义它们。
你可以在System.Configuration.ConfigurationManager
DLL中找到System.Configuration
作为.NET框架的一部分(它有点令人困惑,因为一些System.Configuration命名空间已经在System
DLL,但要获取System.Configuration.ConfigurationManager
,您需要引用System.Configuration.dll
。