我正在研究一个小型类库并使用简单注射器作为我的DI。 类库有一个接入点(我猜想某种服务),它是public
,它有一些internal
服务和存储库。简单的注射器和内部构造函数
我看到Simple Injector不支持带内部构造函数的构造函数注入。 例如,我的产品服务是这样的:
internal class ProductService : IProductService
{
private IProductRepository _productRepository;
internal ProductService(IProductRepository repository)
{
if (repository == null) throw new ArgumentNullException("repository");
_productRepository = repository;
}
}
而且我的设置:
container.Register<IProductService, ProductService>();
container.Register<IProductRepository>(() => new ProductRepository());
当我运行代码,我得到以下异常:
For the container to be able to create ProductService, it should contain exactly one public constructor, but it has 0.
我的问题:
1)是否有一个特定的原因,注入内部类不起作用建筑/设计术语?
2)这种行为(使用依赖注入与不应该公开的类)是如何实现的并且是它的期望?
的原因是什么这些类是内部的,而不是公众:
这个自定义构造函数解析行为可以如下注册? – Steven