我有如下代码:
var mySetting = ConfigurationManager.AppSettings["mySetting"];
有没有办法创建封装每个设置的属性,这样我就不必使用像“mySetting”这样的字符串键?我知道您可以通过创建“自定义配置部分”来做到这一点,但我不想制作另一个部分......我想使用现有的 <appSettings> 部分。
我有如下代码:
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;}
}
当然,这对您的应用程序来说可能有点矫枉过正,但它会提供很多灵活性,因为您不会被绑定到 ConfigurationManager 或其他一些源。
是的 - 使用 Visual Studio 提供的“设置”类 - 使用“添加新项目”,然后选择“设置”。
这为您提供了一个具有强类型属性(字符串、int 等)和所有属性的类。
这将在自定义配置部分的 app.config 中添加它需要的条目 - 但实际上已经为您提供了所有内容,那么为什么要重新发明轮子呢?
马克
查看配置部分设计器,它允许您在 Visual Studio 中以图形方式执行此操作。
http://www.codeproject.com/KB/cs/genuilder.aspx将允许您在 ASP.NET 项目中执行此操作