我有一个通用接口和IRepository<T>两个实现xrmRepository<T>efRepository<T>
我想更改基于 的绑定T,更具体地说,使用xrmRepositorywhenT派生自Entity。我怎样才能做到这一点?
我目前有:
kernel.Bind(typeof(IRepository<>)).To(typeof(efRepository<>)).InRequestScope();
kernel.Bind(typeof(IRepository<>)).To(typeof(xrmRepository<>)).When(request => request.Service.GetGenericArguments()[0].GetType().IsSubclassOf(typeof(Entity))).InRequestScope();
但是当我尝试解决IRepository<Contact>它时,它会转到 efRepository,即使 Contact 继承了 Entity。
我不想使用命名绑定,否则我将不得不在任何地方添加名称。