代码之家  ›  专栏  ›  技术社区  ›  Steve Ward

strcuturemap接线-请检查是否完好

  •  0
  • Steve Ward  · 技术社区  · 15 年前

    我不熟悉IOC和结构图,有一个N级的应用程序,我正在研究如何设置接线(ForRequestedType…),我只想和有更多经验的人确认这是最好的方法!

    我不想让我的UI应用程序对象直接引用我的持久层,所以不能连接这个UI项目中的所有内容。

    现在,我通过在每个项目中定义一个注册表类来工作,该类根据需要连接项目中的类型。上面的层注册其类型,并调用下面的程序集并查找注册表,以便所有类型都通过层次结构注册。

    例如,我有UI、服务、域和持久性库。在我的服务层中,注册表看起来像

            Scan(x =>
            {
                x.Assembly("MyPersistenceProject");
                x.LookForRegistries();
            });
    
            ForRequestedType<IService>().TheDefault.Is.OfConcreteType<MyService>();
    

    在这样的设置中,这是一种推荐的方法吗?在这种情况下,是否有更好的方法,这些方法的优点/缺点是什么?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Ruben    15 年前

    听起来不错。

    如果使用默认约定,例如为接口iorderservice提供默认的实现顺序服务,则可以通过在structuremap中使用约定来减少连接。这个 WithDefaultConventions 是注册表中使用默认约定的方法。您还可以指定自己的约定,并使用该方法在注册表中注册它。 With StructureMap documentation