繁体   English   中英

使用类库从web.config / app.config获取配置设置

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM