Keiner der Konstruktoren, die mit 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' beim Typ 'LMS.Services.Security.EncryptionService' gefunden wurden, kann mit den verfügbaren Diensten und Parametern aufgerufen werden: Der Parameter 'LMS.Models.SecuritySettings securitySettings' des Konstruktors 'Void .ctor (LMS.Models.SecuritySettings)' '
kann nicht aufgelöst werden
Hier sind die Code-Dateien
Serviceklasse
%Vor%Bootstrapper
%Vor% Es hat früher funktioniert. Aber als ich die EncryptionService
Implementierung einführte, erhalte ich den obigen Fehler.
Hier ist die andere Arbeitscode-Implementierung wie folgt
Wenn Autofac versucht, EncryptionService
aufzulösen, versucht es, einen SecuritySettings
-Dienst aufzulösen, aber Autofac ist sich einer solchen Registrierung nicht bewusst.
Um diesen Fehler zu beheben, sollten Sie eine SecuritySettings
Implementierung registrieren.
Zum Beispiel:
%Vor% Sie können das Verhalten von Autofac so anpassen, dass es so funktioniert, wie Sie es ursprünglich erwartet haben [und an die Standardeinstellungen einiger anderer Container anpassen], indem Sie AnyConcreteTypeNotAlreadyRegisteredSource
hinzufügen (siehe Dokumente für Quellen ): -
Ich habe dieses Schema zusammen mit Delegate-Factors und implizite Beziehungstypen , um die explizite Registrierung aus einer Reihe von Apps weitgehend zu entfernen, aber wie es scheint, als hätten Sie die Straße verlassen explizite Anmeldung (boilerplaty: P) Ich würde empfehlen, AnyConcreteTypeNotAlreadyRegisteredSource
zu googeln, um zu sehen, ob ein breiteres Schema zu dem passt, wonach Sie suchen.
In meinem Fall habe ich den Kontext nicht registriert. Ich habe den Kontext registriert und es hat für mich funktioniert.
%Vor%Tags und Links c# dependency-injection ioc-container autofac inversion-of-control