如果我在每个类上都有N个类,我就会声明一个包含配置文件中某些应用程序设置值的属性。
public static IAppSettings AppSettings { get; set; }
我想在创建类时自动填充此属性。
我正在考虑使用StructureMap实现这一目标。
我想以某种方式“说”只在一个地方,如果类包含这个属性填充它。
可能有人碰到过这个并有什么想法?
ASP.NET/ASP.NET MVC,ConsoleApp / WinForms
答案 0 :(得分:0)
如果我每个都有N个课程 其中我以声明为例 包含一些应用程序的属性 从配置文件中设置值。
您应该考虑让这些N类派生自包含此属性的基类:
public abstract Base
{
public IAppSettings AppSettings { get; set; }
}
然后,如果你想让StructureMap自动填充这个属性,你不应该再手动实例化它们,而是总是向容器询问一个值。
例如,在ASP.NET MVC应用程序中,我将使用构造函数注入将IAppSettings
的值传递给所有需要它的控制器。
答案 1 :(得分:0)
听起来你想要一下这篇文章中描述的SettingsScanner的变体:http://lostechies.com/joshuaflanagan/2009/07/13/how-we-handle-application-configuration/
您可以从The FubuMVC源代码获取扫描仪和ISettingsProvider的完整代码: https://github.com/DarthFubuMVC/fubumvc/blob/2e7ea30391eac0053300ec0f6f63136503b16cca/src/FubuMVC.StructureMap/SettingsScanner.cs