我正在使用一个 C#类库,该类需要能够从web.config
或app.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;
有关更多信息,请参见管理应用程序设置 。