使用ConfigurationManager从Web.Config读取密钥
我正在尝试从web层的Web.config
文件中读取不同的层的键(相同的解决scheme)
这是我正在尝试的:
string userName = System.Configuration.ConfigurationManager.AppSettings["PFUserName"]; string password = System.Configuration.ConfigurationManager.AppSettings["PFPassWord"];
这里是我的appSettings
在Web.config
文件中:
<configuration> .... <appSettings> <add key="PFUserName" value="myusername"/> <add key="PFPassWord" value="mypassword"/> </appSettings> .... </configuration>
当我debugging代码的username
和password
只是null
,所以它没有得到的关键的价值。
我做错了什么读取这些值?
尝试使用WebConfigurationManager类。 例如:
string userName = WebConfigurationManager.AppSettings["PFUserName"]
var url = ConfigurationManager.AppSettings["ServiceProviderUrl"];
如果调用者是另一个项目,则应该在调用者项目中编写configuration,而不是调用者中的configuration。
我发现这个解决scheme是相当有帮助的 。 它使用C#4.0 DynamicObject来包装ConfigurationManager。 所以不是像这样访问值:
WebConfigurationManager.AppSettings["PFUserName"]
你访问他们作为财产:
dynamic appSettings = new AppSettingsWrapper(); Console.WriteLine(appSettings.PFUserName);
编辑 :添加代码片段的情况下链接变得陈旧:
public class AppSettingsWrapper : DynamicObject { private NameValueCollection _items; public AppSettingsWrapper() { _items = ConfigurationManager.AppSettings; } public override bool TryGetMember(GetMemberBinder binder, out object result) { result = _items[binder.Name]; return result != null; } }
如果此项目正在被另一个项目使用,则会发生此问题。 确保您将应用程序设置键复制到父项目的app.config或web.config。
你也可以尝试这一行从app.config
文件获取string值。
var strName= ConfigurationManager.AppSettings["stringName"];
对不起,我没有testing过,但我认为这是这样做的:
var filemap = new System.Configuration.ExeConfigurationFileMap(); System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(filemap, System.Configuration.ConfigurationUserLevel.None); //usage: config.AppSettings["xxx"]
- WebAPI中的DependencyResolver.SetResolver和HttpConfiguration.DependencyResolver之间有什么区别
- .NET MVC – 如何分配一个类到Html.LabelFor?
- 如何显示从asp.net MVC 4和Razor视图中的path的图像?
- 在ASP.NET MVC中,多选列表如何与模型绑定一起工作?
- 如何在LINQ select语句中使用Lambda
- Asp.Net MVC中的DataAnnotations StringLength的文本框的maxlength属性
- MVC如何显示模型中的字节数组图像
- ASP.NET MVCloginReturnUrl总是NULL?
- 在Mvc中使用Html.ActionLink时,如何绕过HTML编码?