团结与通用

时间:2011-05-17 05:50:07

标签: c# .net generics inversion-of-control unity-container

如何在Unity中注册和解析通用对象/接口?我正试图远离配置文件。

我正在寻找像

这样的东西

IEnterpriseClient<IInterface1>要解析为EnterpriseClient<IInterface1>

班级签名是

class EnterpriseClient<T> : IEnterpriseClient<T> where T : class

谢谢!

2 个答案:

答案 0 :(得分:7)

这几乎就是你的想法:

container.RegisterType<IEnterpriseClient<IInterface1>, EnterpriseClient<IInterface1>>( ... );

如果你只想要那个特定的封闭通用注册。对于开放式通用(不仅仅是IInterface1),你可以这样做:

container.RegisterType(typeof(IEnterpriseClient<>), typeof(EnterpriseClient<>), ... );

你提到你试过这个 - 什么不起作用?

答案 1 :(得分:2)