如何从ASP.NET自定义控件访问web.config?

时间:2011-07-20 15:57:21

标签: c# asp.net web-config

在我的web.config文件中,我有这样的代码:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    ...
    <section name="UninstallSurveySettings" type="dashboard.UninstallSurveyConfig" />
  </configSections>
  ...
  <UninstallSurveySettings>
    <add key="fileLocation" value="C:\inetpub\wwwroot\output\" />
  </UninstallSurveySettings>
   ...
</configuration>

我需要能够从自定义控件访问此字段。该控件可以放入任何网站,需要在UninstallSurveySetting中检查该站点的web.config以获取fileLocation值。

我尝试了几种不同的方法但没有运气。对此的任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:3)

更容易使用AppSettings

的Web.config:

<configuration>    
    <appSettings>
        <add key="fileLocation" value="C:\inetpub\wwwroot\output\" />
    </appSettings>    
</configuration>

代码:

string location = System.Configuration.ConfigurationManager.AppSettings["fileLocation"];

如果您的部分会变得更复杂,那么:

var section = (NameValueFileSectionHandler)ConfigurationManager.GetSection("UninstallSurveySettings");
if (section != null)
{
    // access section members
}

P.S。

也许您想使用ConfigurationSection类而不是处理程序。

答案 1 :(得分:0)

在ASP.NET MVC 3中,标记不能是直接子代(它会导致配置错误)。

如何将您的密钥添加到该部分。然后,您可以通过 ConfigurationManager.AppSettings 集合轻松访问它。

答案 2 :(得分:0)

使用System.Configuration.ConfigurationManager,您将能够从web.config获得所需内容

答案 3 :(得分:0)

我能够通过为它创建配置类并将此代码放在web.config中来解决这个问题:

<section name="UninstallSurveyConfig" type="dashboard.UninstallSurveyConfig" />
..

<UninstallSurveyConfig dirFileLocation="C:\inetpub\wwwroot\build\output" webFileLocation="~/output" />