StructureMap注册

时间:2015-11-11 22:45:12

标签: ioc-container structuremap

想象一下界面

  • IRepository
  • IFooRepository:IRepository
  • IBarRepository:IRepository

使用关联的存储库:

  • FooRepository:RepositoryBase,IFooRepository
  • BarRepository:RepositoryBase,IBarRepository

我试图用结构图进行通用注册,在一个注册表中注册我的所有存储库,用IFooRepository调用我的IoC

<LinearLayout
    android:id="@+id/list_item3"
    android:layout_width="match_parent"
    android:layout_height="42dp"
    android:layout_below="@+id/list_item"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:background="#DCDBDB" >

            <ImageView
                android:layout_width="33dp"
                android:layout_height="match_parent"
                android:layout_marginRight="15dp"
                android:src="@drawable/quotedevil" />

    <TextView
            android:id="@+id/TextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="21sp" 
            android:layout_marginRight="15dp"
            android:text="@string/quoteDevil"/>

          <ImageView
            android:layout_width="51dp"
            android:layout_height="20dp"
            android:layout_gravity="right"
            android:src="@drawable/nextarrow" />

1 个答案:

答案 0 :(得分:0)

这将使您能够将IFooRepository解析为FooRepository的实例:

Scan(x =>
{
    x.AssemblyContainingType<RepositoryBase>();
    x.IncludeNamespaceContainingType<RepositoryBase>();
    x.WithDefaultConventions();

});

WithDefaultConventions将所有接口与具有相同名称的类(I除外)连接起来。 SingleImplementationsOfInterface也适用于你的情况。