在web.config文件中,我有第三方设置部分:
<configuration>
<configSections>
<sectionGroup name="TheProduct">
<section name="TheSection" type="TheCompany.TheProduct.TheSectionConfigurationHandler, TheCompany.TheProduct, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b1e9bee111e9429c" />
</sectionGroup>
</configSections>
<TheProduct>
<TheSection somevalue="true" />
</TheProduct>
</configuration>
我想从其他应用中读取此部分的值,但是当我尝试查找该部分时,我总是得到null
。
这是我的代码:
var config = ConfigurationManager.OpenExeConfiguration(
@"C:\inetpub\wwwroot\TheProduct\web.config"
);
var settings = config.GetSection("TheProduct/TheSection"); // always null
检索配置部分的正确方法是什么?
[编辑] 如果调用应用程序,它定义了相同的部分,我可以这样做:
var settings = ConfigurationManager.GetSection("TheProduct/TheSection");
它正在发挥作用。 Mybe我没有用正确的方式打开web.config文件吗?
答案 0 :(得分:0)
使用配置管理器要求您的应用程序能够实例化实际的强类型配置对象。如果你不能添加对定义程序集的引用,那么你唯一的选择就是使用一个XML api(System.Xml
或System.Linq.Xml
)来手动读取它,在这种情况下你赢了'完全没有使用配置管理器。