注册后是否“引用”具体类型

时间:2017-08-08 08:35:22

标签: c# asp.net asp.net-mvc unity-container

我有一个抽象类型,我想用统一解决: 这是我的具体类型实现:

public class ConcreteType : AbstractType<Blog>
{
}

并在Bootstraper课程中。

container.RegisterType<AbstractType<Blog>, ConcreteType>();

没关系。 但我需要注册另一种类型:

container.RegisterType<IFactory<AbstractType<Blog>>,ConcreteFactory<ConcreteType>>();

问题是有错误:

  

ConcreteType类型不能用作类型参数'TTo'   通用类型或方法   “UnityContainerExtensions.RegisterType(IUnityContainer,   params InjectionMember [])'。没有隐式引用转换   从'ConcreteFactory'到   '器IFactory&GT;'。

我希望Unity使用第一个“注册类型”来解决第二个问题。

怎么可能?

编辑:

这是ConcreteType实现:

public class ConcreteFactory<T> : IFactory<T> where T : new()
{
    public T Create()
    {
        return new T();
    }
}

和IFactory声明:

public interface IFactory<T>
{
    T Create();
}

0 个答案:

没有答案