协慌网

登录 贡献 社区

在. NET 中从 app.config 或 web.config 读取设置

我正在使用一个 C#类库,该类需要能够从web.configapp.config文件中读取设置(取决于 DLL 是从 ASP.NET Web 应用程序还是 Windows Forms 应用程序引用的)。

我发现

ConfigurationSettings.AppSettings.Get("MySetting")

可以,但是该代码已被 Microsoft 标记为已弃用。

我读到我应该使用:

ConfigurationManager.AppSettings["MySetting"]

但是,C#类库项目似乎没有提供System.Configuration.ConfigurationManager类。

做这个的最好方式是什么?

答案

对于如下的示例 app.config 文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="countoffiles" value="7" />
    <add key="logfilelocation" value="abc.txt" />
  </appSettings>
</configuration>

您使用以下代码阅读上述应用程序设置:

using System.Configuration;

如果还没有引用,则可能还需要在项目中添加对System.Configuration的引用。然后,您可以像这样访问这些值:

string configvalue1 = ConfigurationManager.AppSettings["countoffiles"];
string configvalue2 = ConfigurationManager.AppSettings["logfilelocation"];

您需要在项目的references 文件夹中 添加System.Configuration引用

你绝对应该使用ConfigurationManager在过时的ConfigurationSettings

.NET Framework 4.5 和 4.6 更新;以下将不再起作用:

string keyvalue = System.Configuration.ConfigurationManager.AppSettings["keyname"];

现在通过属性访问 Setting 类:

string keyvalue = Properties.Settings.Default.keyname;

有关更多信息,请参见管理应用程序设置