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")
怎么办?
答案 0 :(得分:23)
如果您不是在进行结构化设置后,appSettings部分只会采用键值对:
<appSettings>
<add key="ADIImageRoot" value="C:\DataTemp\ADI\Original\" />
<add key="ADIImageVariantsRoot" value="C:\DataTemp\ADI\Variants\" />
</appSettings>
这将使您能够通过AppSettings字典访问它们:
ConfigurationManager.AppSettings["ADIImageVariantsRoot"]
正如您所料。
或者,如果您的配置需要更多结构(例如,不仅仅是字符串或设置集合),您可以使用ConfigurationSection来查看自己的配置部分及其相关内容部分。
答案 1 :(得分:2)
您似乎正在使用visual studio内置的设置内容。这会生成一个与文件相关的包装类,在您的情况下称为MySettings
。
你可以这样写MySettings.Instance.ADIImageVariantsRoot
之类的东西。 (如果单击显示项目工具箱中的所有文件,它将显示.settings.cs文件,您可以看到所有的血腥细节)
答案 2 :(得分:2)
添加参考System.web;
添加名称空间和用户
using System.Web.Configuration;
String webConfigValue;
webConfigValue = WebConfigurationManager.AppSettings["employeeDB"].ToString();
阅读网络配置值
<appSettings>
<add key="employeeDB" value="Data Source=servername;Initial Catalog=employee;Persist Security Info=True;User ID=userid;Password=password;"/>
</appSettings>
答案 3 :(得分:0)
对于ApplicationSettings,您应该使用:
[YourNamespace].Properties.Settings.Default.[YourSettingName]
这为您的设置提供了强类型引用,如果未在web.config文件中定义,则返回默认值。对于AppSettings,您应该使用:
System.Web.Configuration.WebConfigurationManager.AppSettings