3

次のように団結を使用することは可能ですか:

container.Register(typeof(IMyType<car>), typeof(MyType1<car>));
container.Register(typeof(IMyType<>), typeof(MyType2<>));

.. 解決しようとすると... が得られますが、解決しようとIMyType<car>すると? または、同じことを行う別の方法で、定義されたジェネリックがオープンジェネリックよりも優先されるのでしょうか?MyType1<car>IMyType<bus>MyType2<bus>

4

1 に答える 1

6

はい、まさにそれを行うことができます:

IUnityContainer container = new UnityContainer();

container.RegisterType(typeof(IMyType<Car>), typeof(MyType1<Car>));
container.RegisterType(typeof(IMyType<>), typeof(MyType2<>));

// Returns MyType1<Car>:
IMyType<Car> car = container.Resolve<IMyType<Car>>();

// Returns MyType2<Bus>:
IMyType<Bus> bus = container.Resolve<IMyType<Bus>>();
于 2011-06-07T21:26:42.073 に答える