4

現在、次のコードを含むインストーラーがあります。

container.Register(Component.For<EntityListResolver<Unit>>()
         .ImplementedBy<EntityListResolver<Unit>>());
container.Register(Component.For<EntityResolver<Unit>>()
         .ImplementedBy<EntityResolver<Unit>>());

この登録を変更して、送信するすべてのタイプに対して自動的に解決されるようにしたいと思います。Unit

これを達成するために登録を変更するにはどうすればよいですか?

4

2 に答える 2

5

オープン ジェネリックを使用できます。

container.Register(Component.For(typeof(EntityListResolver<>))()
         .ImplementedBy(typeof(EntityListResolver<>))());
于 2013-01-17T09:59:11.870 に答える
0

コンパイル時に型がわかっている場合は、ジェネリック関数で登録できます。

void Register<T>()
{
    container.Register(Component.For<EntityListResolver<T>>()
             .ImplementedBy<EntityListResolver<T>>());
    container.Register(Component.For<EntityResolver<T>>()
             .ImplementedBy<EntityResolver<T>>());
}

Register<Unit>();次に、必要なタイプを呼び出すだけです。

于 2013-01-17T06:41:58.173 に答える