在具有多个程序集的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
您如何看待这种方法并将课程注入单身人士?
在这种情况下,我是否需要将任何类/属性设置为静态? 我想我需要将LoggerSettings及其属性设置为静态,不是吗? 否则,我需要在构建设置时创建一个新实例?
有人可以就此提出建议吗?
答案 0 :(得分:3)
如果您实际上注入您的类(通过DI框架),并且通过“singleton”表示您在DI框架中使用单一“范围”,那么这种方法将起作用精细。如果这实际上是你正在做的事情,那么你的属性都不需要是静态的,因为相同的“单例”实例将被注入任何依赖它的类中。