【问题标题】:StrcutureMap Wiring - Sanity Check PleaseStructureMap 接线 - 请进行完整性检查
【发布时间】: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


    【解决方案1】:

    这听起来不错。

    如果您使用默认约定,例如为接口 IOrderService 提供默认实现 OrderSevice,您可以通过使用 StructureMap 中的约定来减少布线。 WithDefaultConventions 是注册表中使用默认约定的方法。你也可以指定自己的约定,并使用With方法在注册表中注册,见StructureMap documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      • 2010-11-12
      相关资源
      最近更新 更多