繁体   English   中英

解决C#Unity构造函数时出错

[英]Error resolving c# Unity constructor

问题背景:

我目前正在配置Unity容器,在设置类的构造函数时遇到问题。

所设置的类的构造函数如下所示。 它接受3个字符串参数,然后接受我在容器中设置的2个对象。

public VersionControlFacade(string serverPath, string username, string password, IConnectionManager connectionManager, IPromoManager promoManager)

为上述类配置的Unity容器如下所示:

container.RegisterType<IPromoManager, promotionManager>();
container.RegisterType<IConnectionManager, connectionManager>();
container.RegisterType<ITfsVersionControlFacade, TfsVersionControlFacade>(new InjectionConstructor(connectionString, username, password));

错误:

当前,当尝试解析UnityContainer对象时,将引发以下异常:

类型VersionControlFacade没有使用参数(字符串,字符串,字符串)的构造函数

我知道这一点,我确实确实传入了另外两个参数,但是我相信当我注册IPromoManagerIConnectionManager ,这些参数将被解析并自动注入到VersionControlFacade构造函数中吗?

谁能告诉我这里的逻辑哪里错了,我该怎么做才能解决呢?

我相信您需要:

container.RegisterType<ITfsVersionControlFacade, TfsVersionControlFacade>(new InjectionConstructor(connectionString, username, password, typeof(IConnectionManager), typeof(IPromoManager)));

看到

用于多参数构造函数的Unity InjectionConstructor仅覆盖单个一个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM