![](/img/trans.png)
[英]Configuration settings in (web.config|app.config) versus a Static Class Object
[英]Getting configuration settings from web.config/app.config using class library
3.5中的配置设置让我疯狂......帮忙! ;)
我有一个类库(命名为ADI),需要从项目中使用它的一些配置设置(如connectionstring,filesystem locations等)。
我想在我的Windows窗体/ Web项目App.Config或Web.Config中定义这些设置,就像其他设置一样。
这是我的Windows窗体应用程序的app.config的一部分:
<applicationSettings>
<PhotoImportRobot.My.MySettings>
<setting name="ADIImageRoot" serializeAs="String">
<value>C:\DataTemp\ADI\Original\</value>
</setting>
<setting name="ADIImageVariantsRoot" serializeAs="String">
<value>C:\DataTemp\ADI\Variants\</value>
</setting>
</PhotoImportRobot.My.MySettings>
</applicationSettings>
如何从我的类库中访问它?
我试过这个:
System.Configuration.ConfigurationManager.AppSettings("ADIImageVariantsRoot")
该怎么办?
如果您不是在进行结构化设置后,appSettings部分只会采用键值对:
<appSettings>
<add key="ADIImageRoot" value="C:\DataTemp\ADI\Original\" />
<add key="ADIImageVariantsRoot" value="C:\DataTemp\ADI\Variants\" />
</appSettings>
这将使您能够通过AppSettings字典访问它们:
ConfigurationManager.AppSettings["ADIImageVariantsRoot"]
正如你所料。
或者,如果您需要更多的配置结构(即不仅仅是字符串或设置集合),您可以使用ConfigurationSection及其相关部分来研究使用自己的配置部分。
添加引用System.web;
添加名称空间和用户
using System.Web.Configuration;
String webConfigValue;
webConfigValue = WebConfigurationManager.AppSettings["employeeDB"].ToString();
读取Web配置值
<appSettings>
<add key="employeeDB" value="Data Source=servername;Initial Catalog=employee;Persist Security Info=True;User ID=userid;Password=password;"/>
</appSettings>
您似乎正在使用Visual Studio内置的设置内容。 这将生成一个与文件相关的包装类,在您的情况下称为MySettings
。
因此,您可以编写类似MySettings.Instance.ADIImageVariantsRoot
。 (如果单击显示项目工具箱中的所有文件,它将显示.settings.cs文件,您可以看到所有的血腥细节)
对于ApplicationSettings,您应该使用:
[YourNamespace].Properties.Settings.Default.[YourSettingName]
这为您的设置提供了强类型引用,如果未在web.config文件中定义,则返回默认值。 对于AppSettings,您应该使用:
System.Web.Configuration.WebConfigurationManager.AppSettings
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.