在我的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值。
我尝试了几种不同的方法但没有运气。对此的任何帮助将不胜感激。
答案 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" />