应用程序中的全局设置

时间:2013-03-28 00:58:23

标签: c# asp.net-mvc

在具有多个程序集的ASP.NET MVC应用程序上,我需要访问一些设置。

基本上。设置是来自Web.Config AppSettings的常量或值。

我的想法是在我需要的地方注入Settings类作为单身人士:

public interface ISettings {
  LoggerSettings Logger { get; }
} // ISettings

public class LoggerSettings {
  public String Levels { get { return ConfigurationManager.AppSettings["Logger.Levels"]; } }
  public const String Report = "team@xyz.com";
} // LoggerSettings

public class Settings : ISettings {
  public LoggerSettings Logger { get; private set; }

  public Settings() {
    Logger = new LoggerSettings();
  }
} // Settings
  1. 您如何看待这种方法并将课程注入单身人士?

  2. 在这种情况下,我是否需要将任何类/属性设置为静态? 我想我需要将LoggerSettings及其属性设置为静态,不是吗? 否则,我需要在构建设置时创建一个新实例?

  3. 有人可以就此提出建议吗?

1 个答案:

答案 0 :(得分:3)

如果您实际上注入您的类(通过DI框架),并且通过“singleton”表示您在DI框架中使用单一“范围”,那么这种方法将起作用精细。如果这实际上是你正在做的事情,那么你的属性都不需要是静态的,因为相同的“单例”实例将被注入任何依赖它的类中。