将AppSettings封装在一个类中?

时间:2009-10-19 16:14:13

标签: c# appsettings

我的代码如下:

var mySetting = ConfigurationManager.AppSettings["mySetting"];

有没有办法创建封装每个设置的属性,所以我不必使用像“mySetting”这样的字符串键?我知道你可以通过创建“自定义配置部分”来做到这一点,但我不想再制作另一部分......我想使用现有的< appSettings>部分。

3 个答案:

答案 0 :(得分:3)

另一个选项是创建一个可用于检索应用程序设置的单独界面

public interface IFooSettings
{
  int MySettings{get;}
}

public class ApplicationSettings : IFooSettings
{
  public string MySettings{get; private set;}
ApplicationSettings()
{
 MySettings = ConfigurationManager.AppSettings["mySetting"];

}
}

如果由于某种原因你想开始在数据库中保存配置,那么你需要做的唯一事情是从IFooSettings派生一个类来使用数据库

public class SqlApplicationSettings : IFooSettings
{
SqlApplicationSettings()
{
  //Do Something to populate the settings
}
  public string MySettings{get; private set;}
}

虽然这对你的应用程序来说可能有点过分,但它会提供很多灵活性,因为你不会被绑定到ConfigurationManager或其他来源。

答案 1 :(得分:2)

是 - 使用Visual Studio提供的“设置”类 - 使用“添加新项”然后选择“设置”。

这为您提供了一个具有强类型属性(字符串,整数等)和所有类的类。

这将在自定义配置部分的app.config中添加所需的条目 - 但它实际上已经全部为您提供了,所以为什么要重新发明轮子?

马克

答案 2 :(得分:0)

http://www.codeproject.com/KB/cs/genuilder.aspx将允许您在ASP.NET项目中执行此操作