解析c#统一构造函数时出错
问题背景: 我目前正在配置Unity容器,在设置类的构造函数时遇到问题 所讨论的类的构造函数的设置如图所示。它接受3个字符串参数,然后是我在容器中设置的2个对象解析c#统一构造函数时出错,c#,interface,constructor,unity-container,C#,Interface,Constructor,Unity Container,问题背景: 我目前正在配置Unity容器,在设置类的构造函数时遇到问题 所讨论的类的构造函数的设置如图所示。它接受3个字符串参数,然后是我在容器中设置的2个对象 public VersionControlFacade(string serverPath, string username, string password, IConnectionManager connectionManager, IPromoManager promoManager) 为上述类配置的Unity容器如下所示: c
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));
container.RegisterType();
container.RegisterType();
RegisterType(新的InjectionConstructor(connectionString、用户名、密码));
错误:
当前,当尝试解析UnityContainer
对象时,将引发以下异常:
VersionControlFacade类型没有接受参数(字符串、字符串、字符串)的构造函数
我明白这一点,我确实在传递另外两个参数,但我相信,在我注册了ipromanager
和IConnectionManager
之后,这些参数将被解析并自动注入VersionControlFacade
构造函数中
谁能告诉我这里的逻辑错误在哪里,我能做些什么来解决它?我相信您需要:
container.RegisterType<ITfsVersionControlFacade, TfsVersionControlFacade>(new InjectionConstructor(connectionString, username, password, typeof(IConnectionManager), typeof(IPromoManager)));
container.RegisterType(新的注入构造函数(connectionString、用户名、密码、typeof(IConnectionManager)、typeof(ipromanager));
看
您的另一个问题(与此问题非常相似)表明您可能有命名问题?您实现了VersionControlService
,即使您感兴趣的构造函数是VersionControlFacade
?