【发布时间】:2016-04-26 19:47:14
【问题描述】:
我已经定义了一个这样的通用接口:
public interface IPlanManagmentRepository<TEntity> where TEntity:class
当我定义这样的具体实现时:
public class ProviderPlanManagementRepo : IPlanManagmentRepository<Provider>
一切都通过像这样注册接口来工作:
container.Register(typeof(IPlanManagmentRepository<>),
new [] { typeof(IPlanManagmentRepository<>).Assembly},
Lifestyle.Scoped);
但是,如果这个类也处理更多的东西,我添加了一个额外的接口:
public interface IProviderPlanManagementRepo
{
void doSomethingSpecificToProviderHere();
}
public class ProviderPlanManagementRepo : IProviderPlanManagementRepo,
IPlanManagmentRepository<Provider>
{
}
然后我得到这个错误:
-[Torn Lifestyle] IPlanManagmentRepository 的注册映射到与 IProviderPlanManagementRepo 的注册相同的实现和生活方式。它们都映射到 ProviderPlanManagementRepo
我也尝试在 IProviderPlanManagementRepo 中继承 IPlanManagmentRepository,但得到了同样的错误。
这个类应该只处理泛型接口的实现吗? 还是可以用简单的注射器来完成这个?
【问题讨论】:
标签: c# generics simple-injector