C# 在类中封装AppSettings?

C# 在类中封装AppSettings?,c#,appsettings,C#,Appsettings,我有如下代码: var mySetting = ConfigurationManager.AppSettings["mySetting"]; 有没有一种方法可以创建封装每个设置的属性,这样我就不必像mySetting那样使用字符串键?我知道你可以通过创建一个自定义配置部分来实现,但我不想再创建另一个部分。。。我想使用现有部分。是-使用Visual Studio提供的设置类-使用添加新项,然后选择设置 这将为您提供一个具有强类型属性string、int等以及all的类 这将在app.config

我有如下代码:

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

有没有一种方法可以创建封装每个设置的属性,这样我就不必像mySetting那样使用字符串键?我知道你可以通过创建一个自定义配置部分来实现,但我不想再创建另一个部分。。。我想使用现有部分。

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

这将为您提供一个具有强类型属性string、int等以及all的类

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


Marc

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

这将为您提供一个具有强类型属性string、int等以及all的类

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


Marc

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

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

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

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中以图形方式执行此操作。

签出允许您在Visual Studio中以图形方式执行此操作。

将允许您在ASP.NET项目中执行此操作

将允许您在ASP.NET项目中执行此操作

此方法将非常适合某些项目类型,例如WPF应用程序、类库等,但并不适用于所有项目类型。例如,设置文件不是web应用程序的新项目选项。好答案。@Brian:是的,我同意-这不是解决所有问题的方法,但当它可用时,我会使用它-不要总是重复一切!:。。。。。这种方法适用于某些项目类型,例如WPF应用程序、类库等,但并不适用于所有项目类型。例如,设置文件不是web应用程序的新项目选项。好答案。@Brian:是的,我同意-这不是解决所有问题的方法,但当它可用时,我会使用它-不要总是重复一切!:。。。。。