使用StructureMap自动启动属性

时间:2010-10-18 03:29:55

标签: asp.net asp.net-mvc winforms asp.net-mvc-2 structuremap

如果我在每个类上都有N个类,我就会声明一个包含配置文件中某些应用程序设置值的属性。

  public static IAppSettings AppSettings { get; set; }

我想在创建类时自动填充此属性。

我正在考虑使用StructureMap实现这一目标。

我想以某种方式“说”只在一个地方,如果类包含这个属性填充它。

可能有人碰到过这个并有什么想法?

ASP.NET/ASP.NET MVC,ConsoleApp / WinForms

2 个答案:

答案 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