我正在尝试创建一个直通方法,它将调用Unity来注册一个类型。这是我尝试创建的方法的主体:
public static void RegisterType<T,U>()
{
myContainer.RegisterType<T, U>();
}
myContainer属性是IUnityContainer。当我尝试构建它时,我得到了
类型'U'不能在泛型类型或方法'Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType(Microsoft.Practices.Unity.IUnityContainer,params Microsoft.Practices.Unity.InjectionMember)中用作类型参数'TTo'。 [])”。从“U”到“T”没有装箱转换或类型参数转换。
如何告诉编译器U确实实现了接口T?
答案 0 :(得分:7)
这不会起作用:
public static void RegisterType<T,U>() where U : T
{
myContainer.RegisterType<T, U>();
}