【发布时间】:2011-01-10 17:47:17
【问题描述】:
我是 IOC 和 StructureMap 的新手,有一个 n 级应用程序,正在研究如何设置接线(ForRequestedType ...),只是想与有更多经验的人核实这是最好的方法!
我不希望我的 UI 应用程序对象直接引用我的持久层,因此无法在此 UI 项目中连接所有内容。
我现在通过在每个项目中定义一个 Registry 类来实现它,该类根据需要连接项目中的类型。上面的层注册它的类型并调用下面的程序集并查找注册表,以便通过层次结构注册所有类型。
例如我有 UI、Service、Domain 和 Persistence 库。在我的服务层中,注册表看起来像
Scan(x =>
{
x.Assembly("MyPersistenceProject");
x.LookForRegistries();
});
ForRequestedType<IService>().TheDefault.Is.OfConcreteType<MyService>();
这是在这样的设置中推荐的方法吗?在这种情况下,有没有更好的方法以及这些方法的优点/缺点是什么?
【问题讨论】:
标签: dependency-injection inversion-of-control structuremap ioc-container