我尝试注册一个构造函数需要几个字符串、一个 ILog 和一个布尔值的类。我的容器中的所有内容都注册为单例(设置为默认重用)。
但是每当我尝试获取该类的实例时,container.Resolve<AzmanAccess>()
就会引发异常。
无法将布尔值解析为 Company.Common.Util.Authentication.AzmanAccess 中的参数“accessAll”:Company.Common.Util.Authentication.IAzmanAccess {RequiredServiceType=Company.Common.Util.Authentication.AzmanAccess} 作为 Company 中的参数“azmanAccess”。 Common.Util.Authentication.AzmanCustomAccess:Company.Common.Util.Authentication.IAccess 作为 Company.Common.Util.Authentication.User 中的参数“访问”:Company.Common.Util.Authentication.IUser 其中 CurrentScope:null 和 ResolutionScope:null并找到注册:skipAuthz,{ID=53, ImplType=Boolean, Reuse=SingletonReuse {Lifespan=1000}}} System.Object,{ID=25, ImplType=Boolean, Reuse=SingletonReuse {Lifespan=1000}}}
我这样注册我的课程:
container.RegisterInstance(_accessAll, serviceKey: AccessAll);
container.RegisterInstance(_activeDirectoryDomain, serviceKey: ActiveDirectoryDomain);
container.RegisterInstance(_azmanConnString, serviceKey: AzmanConnString);
container.RegisterInstance(_azmanStore, serviceKey: AzmanStore);
container.Register(Made.Of(() => new AzmanAccess(
Arg.Of<bool>(AccessAll),
Arg.Of<ILog>(),
Arg.Of<string>(ActiveDirectoryDomain),
Arg.Of<string>(AzmanConnString),
Arg.Of<string>(AzmanStore)
)));
构造函数是:
public AzmanAccess(bool accessAll, ILog logger, string activeDirectoryDomain, string azmanConnString, string azmanStore)
其中 servicekeys (AccessAll, ...) 是唯一的(尝试使用对象,然后是字符串)。
怎么了?