【发布时间】:2019-03-18 15:04:04
【问题描述】:
Simple Injector 文档describe 如何实现惰性依赖。然而,这个例子只涉及注册一个简单的接口(@987654322@)。这将如何与开放泛型 (EG.IMyService<T>) 一起使用?
这是我现有的注册:
container.Register(typeof(IDbRepository<>), typeof(DbRepository<>));
显然以下代码无法编译,因为我没有指定泛型类型:
container.Register(typeof(IDbRepository<>),
() => new LazyDbRepositoryProxy<>(new Lazy<IDbRepository<>(container.GetInstance<>)));
这在 Simple Injector 中可行吗?我只能看到 Register 的以下覆盖,其中不允许传入 func / instanceCreator:
public void Register(Type openGenericServiceType, params Assembly[] assemblies);
public void Register(Type openGenericServiceType, IEnumerable<Assembly> assemblies);
public void Register(Type openGenericServiceType, Assembly assembly, Lifestyle lifestyle);
public void Register(Type openGenericServiceType, IEnumerable<Assembly> assemblies, Lifestyle);
public void Register(Type openGenericServiceType, IEnumerable<Type> implementationTypes, Lifestyle);
public void Register(Type openGenericServiceType, IEnumerable<Type> implementationTypes);
【问题讨论】:
标签: c# generics dependency-injection simple-injector