注册具有优先级的开放泛型



是否可以像这样使用统一:

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

所以当我试图解析IMyType<car>时,我得到了MyType1<car>。。。但当我试图解决IMyType<bus>时,我得到了MyType2<bus>?或者用另一种方法做同样的事情,使定义的泛型优先于开放的泛型?

是的,您可以做到这一点:

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>>();

相关内容

  • 没有找到相关文章

最新更新