1

我有如下代码:

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

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

4

4 回答 4

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 或其他一些源。

于 2009-10-19T16:39:11.647 回答
2

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

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

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

马克

于 2009-10-19T16:17:36.210 回答
0

查看配置部分设计器,它允许您在 Visual Studio 中以图形方式执行此操作。

于 2009-10-19T17:33:24.130 回答
0

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

于 2009-11-23T23:51:54.233 回答