0

我有一个实际上是CMS应用程序的ASP.NET Web应用程序(不是MVC)。我试图建立StructureMap IoC框架并且它运行良好,但我现在已经在我的理解中遇到了阻塞者。无法接受构造函数参数的StructureMap和类

在我的理解中,StructureMap强制实施了一种模式,其中所有依赖项都在核心应用程序程序集中注册,因此底层程序集本身并不依赖于StructureMap。

因此,说我的应用程序是My.App,它引用了另一个程序集My.Logic。我的依赖关系全部注册在My.App的容器中。这意味着,在My.Logic一个类可以使用构造函数像这样采取注射的依赖关系:

public class Foo 
{ 
    private readonly IBar bar; 
    public Foo(IBar bar) 
    { 
    this.bar = bar; 
    } 
} 

但现在我有我的地方在My.Logic类是必须在CMS中注册一个类型的情况下,这需要它有一个空的构造函数。

所以问题是,如果我不能注入使用构造函数参数,并且My.Logic没有依赖于My.App,所以我没有访问IoC容器,是否有可能使用结构图来处理这种情况?

如果不是,除了在与IoC容器相同的程序集中创建类之外,还有什么替代方法?

回答

0

使用setter注射。见here

For<IBar>().Use<MyBar>(); 

Policies.FillAllPropertiesOfType<IBar>(); 
+0

谢谢@ozczecho – getsetcode

相关问题