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

时间:2009-03-26 10:48:10

标签: asp.net vb.net .net-3.5

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")

怎么办?

4 个答案:

答案 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