Autofac Keiner der Konstruktoren, die mit 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' gefunden wurden

9
  

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

%Vor%     
pbhalchandra 15.07.2015, 14:55
quelle

3 Antworten

9

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%     
Cyril Durand 15.07.2015, 15:09
quelle
1

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 ): -

%Vor%

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.

    
Ruben Bartelink 31.05.2016 13:01
quelle
1

In meinem Fall habe ich den Kontext nicht registriert. Ich habe den Kontext registriert und es hat für mich funktioniert.

%Vor%     
Pranav Mishra 21.06.2017 10:27
quelle