C# Unity System.InvalidOperationException:&x27;未找到任何成员匹配数据
我正在尝试注册以下类型,如下所示:C# Unity System.InvalidOperationException:&x27;未找到任何成员匹配数据,c#,unity-container,C#,Unity Container,我正在尝试注册以下类型,如下所示: IDbManager db= new DbManager(ConnectionDbType.SqlServer); InjectionConstructor injectionConstructor = new InjectionConstructor(db); .RegisterType<IDbManager, DbManager>(injectionConstructor) 完全错误: System.InvalidOperationExce
IDbManager db= new DbManager(ConnectionDbType.SqlServer);
InjectionConstructor injectionConstructor = new InjectionConstructor(db);
.RegisterType<IDbManager, DbManager>(injectionConstructor)
完全错误:
System.InvalidOperationException:'注入构造函数
.ctor(DataAccessHandler.DbManager)无法与任何
IDbManager类型上的公共构造函数
错误:
RegisterType(Invoke.Constructor(DataAccessHandler.DbManager))
内部异常:ArgumentException:注入构造函数
.ctor(DataAccessHandler.DbManager)无法与任何
IDbManager类型上的公共构造函数
我做错了什么?如果其他人遇到这个问题,我最近自己也遇到了这个问题,当时我试图用一个2参数构造函数注册一个类型,但Unity一直声称它找不到构造函数。所讨论的构造函数采用
类型
和字符串
,最初我试图将其注入注册中,如下所示:
...
new InjectionConstructor(this.GetType(), "some string")
事实证明,无论出于什么原因,Unity都无法根据我提供的注入构造函数的值来解析构造函数参数的类型。对于第一个参数,我必须明确说明构造函数应该期望的参数类型,这意味着我的注册必须更改,因此:
new InjectionConstructor(new InjectionParameter<Type>(this.GetType()), "some string")
newinjectionconstructor(newinjectionParameter(this.GetType()),“some string”)
InjectionParameter
的泛型参数必须与声明的构造函数参数类型匹配,以便Unity可以正确解析构造函数,但为该参数传入的参数只需与该类型兼容InjectionParameter
也可以是任何其他Unity参数类型,如ResolvedParameter
,等等。如果其他人遇到这个问题,我最近自己也遇到过,我试图用2参数构造函数注册一个类型,但Unity一直声称找不到构造函数。所讨论的构造函数采用类型
和字符串
,最初我试图将其注入注册中,如下所示:
...
new InjectionConstructor(this.GetType(), "some string")
事实证明,无论出于什么原因,Unity都无法根据我提供的注入构造函数的值来解析构造函数参数的类型。对于第一个参数,我必须明确说明构造函数应该期望的参数类型,这意味着我的注册必须更改,因此:
new InjectionConstructor(new InjectionParameter<Type>(this.GetType()), "some string")
newinjectionconstructor(newinjectionParameter(this.GetType()),“some string”)
InjectionParameter
的泛型参数必须与声明的构造函数参数类型匹配,以便Unity可以正确解析构造函数,但为该参数传入的参数只需与该类型兼容InjectionParameter
也可以是任何其他统一参数类型,如ResolvedParameter
等