繁体   English   中英

将AppSettings封装在类中?

[英]encapsulate AppSettings in a class?

我有这样的代码:

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

有没有一种方法可以创建封装每个设置的属性,因此我不必使用“ mySetting”之类的字符串键? 我知道您可以通过创建“自定义配置部分”来做到这一点,但是我不想创建其他部分...我想使用现有的<appSettings>部分。

另一个选择是创建一个单独的界面,您可以使用该界面来检索应用程序设置

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;}
}

当然,这对于您的应用程序来说可能有些矫kill过正,但是它可以提供很大的灵活性,因为您不会被绑定到ConfigurationManager或其他来源。

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

这为您提供了具有强类型属性(字符串,int等)的类。

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

签出配置部分设计器 ,它将使您能够在Visual Studio中以图形方式进行此操作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM