gpt4 book ai didi

c# - 使用简单注入(inject)器注册集合

转载 作者:行者123 更新时间:2023-12-02 04:01:26 25 4
gpt4 key购买 nike

我尝试在 C# 中使用简单的注入(inject)器注册一个集合。我的方法如下:

container.Collection.Register<IValidateMitarbeiter>(
typeof(MitarbeiterVerfuegbarkeitValidator),
typeof(MitarbeiterQualifikationsValidator));

但我收到此错误消息:

The configuration is invalid. Creating the instance for type IDispoLinienManager failed. The constructor of type DispoLinienManager contains the parameter with name 'mitarbeiterValidators' and type IValidateMitarbeiter that is not registered. Please ensure IValidateMitarbeiter is registered, or change the constructor of DispoLinienManager.

这是DispoLinienManager的构造函数

public DispoLinienManager(IDataContextFactory dataContextFactory,
IDispoPlanLinieFactory dispoPlanLinieFactory,
IValidateMitarbeiter mitarbeiterValidators)
{
this.dataContextFactory = dataContextFactory;
this.dispoPlanLinieFactory = dispoPlanLinieFactory;
this.mitarbeiterValidators = mitarbeiterValidators;
}

IValidateMitarbeiter 有两个实现,都在 DispoLinienManager 中使用。如果有任何缺失的信息,我很乐意帮助您解决我的问题。

最佳答案

如果我使用最新版本的 Simple Injector 在本地重现您的示例,我会收到以下消息:

The configuration is invalid. Creating the instance for type DispoLinienManager failed. The constructor of type DispoLinienManager contains the parameter with name 'mitarbeiterValidators' and type IValidateMitarbeiter that is not registered. Please ensure IValidateMitarbeiter is registered, or change the constructor of DispoLinienManager. There is, however, a registration for IEnumerable<IValidateMitarbeiter>; Did you mean to depend on IEnumerable<IValidateMitarbeiter>?

请注意该消息的最后部分。

如上所述here在文档中,简单注入(inject)器将集合的注册与一对一映射分开:

When designing Simple Injector, we made a very explicit design decision to define a separate RegisterCollection method for registering a collection of services for an abstraction.

关于c# - 使用简单注入(inject)器注册集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41721434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com