Ich versuche eine Klasse zu registrieren, deren Konstruktor ein paar Strings, ein ILog und ein Bool benötigt. Alle in meinem Container sind als Singleton registriert (als Standard-Wiederverwendung festgelegt).DryIoc kann meine boolesche Instanz nicht auflösen?
Aber immer wenn ich versuche, eine Instanz dieser Klasse container.Resolve<AzmanAccess>()
zu erhalten, wird eine Ausnahme ausgelöst.
Unable Boolean als Parameter "accessAll" in Company.Common.Util.Authentication.AzmanAccess zu beheben: Company.Common.Util.Authentication.IAzmanAccess {RequiredServiceType = Company.Common.Util.Authentication.AzmanAccess } als Parameter "azmanAccess" in Company.Common.Util.Authentication.AzmanCustomAccess: Company.Common.Util.Authentication.IAccess als Parameter "access" in Company.Common.Util.Authentication.User: Company.Common .Util.Authentication.IUser Wobei CurrentScope: null und ResolutionScope: Null und gefundene Registrierungen: Überspringen Authz, {ID = 53, ImplType = Boolean, Reuse SingletonReuse = {Lebensdauer = 1000}}} System.Object, {ID = 25, ImplType = Boolean, Reuse = SingletonReuse {Lebensdauer = 1000}}}
melde ich mich meiner Klasse wie folgt aus:
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)
)));
und der Konstruktor ist:
public AzmanAccess(bool accessAll, ILog logger, string activeDirectoryDomain, string azmanConnString, string azmanStore)
Wo servicekeys (AccessAll, ...) eindeutig sind (mit Objekten versucht, dann string).
Was läuft falsch?
Was ist der Typ des Service-Schlüssels AccessAll? Ich habe deinen Fall mit dem String-Key reproduziert und es hat funktioniert. – dadhi
@dadhi Haben Sie mit "new object()" für den anderen Dienstschlüssel versucht? –