【发布时间】:2015-07-20 11:30:18
【问题描述】:
我有一个 ASP.NET Web 应用程序(不是 MVC),它实际上是一个 CMS 应用程序。我正在尝试设置 StructureMap IoC 框架,它运行良好,但我现在遇到了我理解的障碍。
在我的理解中,StructureMap 强制执行一种模式,其中所有依赖项都注册在核心应用程序程序集中,因此底层程序集本身并不依赖于 StructureMap。
所以,假设我的应用程序是 My.App,它引用了另一个程序集 My.Logic。我的依赖项都注册在 My.App 的一个 Container 中。这意味着 My.Logic 中的类可以使用这样的构造函数获取注入的依赖项:
public class Foo
{
private readonly IBar bar;
public Foo(IBar bar)
{
this.bar = bar;
}
}
但是现在我有一个案例,我在 My.Logic 中的类是必须在 CMS 中注册的类型,这要求它有一个空的构造函数。
所以问题是,如果我不能使用构造函数参数注入,并且 My.Logic 对 My.App 没有依赖关系,所以我无法访问 IoC 容器,是否可以使用 StructureMap处理这种情况?
如果没有,除了在与 IoC 容器相同的程序集中创建类之外,我还有什么选择?
【问题讨论】:
标签: asp.net webforms content-management-system inversion-of-control structuremap