[英]Register collection with Simple Injector
我尝试在C#中使用简单的注入器注册一个集合。 我的方法如下:
container.Collection.Register<IValidateMitarbeiter>(
typeof(MitarbeiterVerfuegbarkeitValidator),
typeof(MitarbeiterQualifikationsValidator));
但我收到此错误消息:
配置无效。 为IDispoLinienManager类型创建实例失败。 类型DispoLinienManager的构造函数包含名称为'mitarbeiterValidators'的参数和未注册的IValidateMitarbeiter类型。 请确保IValidateMitarbeiter已注册,或更改DispoLinienManager的构造函数。
这是DispoLinienManager的构造函数
public DispoLinienManager(IDataContextFactory dataContextFactory,
IDispoPlanLinieFactory dispoPlanLinieFactory,
IValidateMitarbeiter mitarbeiterValidators)
{
this.dataContextFactory = dataContextFactory;
this.dispoPlanLinieFactory = dispoPlanLinieFactory;
this.mitarbeiterValidators = mitarbeiterValidators;
}
IValidateMitarbeiter具有两个在DispoLinienManager中使用的实现。 如果有任何遗漏的信息,我将很高兴帮助您解决我的问题。
如果我使用最新版本的Simple Injector在本地复制您的示例,则会收到以下消息:
配置无效。 创建类型DispoLinienManager的实例失败。 类型DispoLinienManager的构造函数包含名称为'mitarbeiterValidators'的参数和未注册的IValidateMitarbeiter类型。 请确保IValidateMitarbeiter已注册,或更改DispoLinienManager的构造函数。 但是,存在IEnumerable <IValidateMitarbeiter>的注册; 您是要依赖IEnumerable <IValidateMitarbeiter>吗?
请注意该消息的最后一部分。
如文档中此处所述,Simple Injector将集合的注册与一对一映射分开:
在设计Simple Injector时,我们做出了非常明确的设计决策,以定义单独的RegisterCollection方法来注册抽象服务的集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.