Autofac registrieren dll mit Assembly.Load

8

Ich versuche eine DLL mit dem Namen "BigEye.Business" zu registrieren und referenziere diese Datei auf das mvc 3 Projekt. Aber wenn ich versuche, eine Instanz eines Objekts in diese DLL zu bekommen, sagt Autofac, dass es nicht registriert ist. Hier ist, wie ich das Objekt registrieren und auflösen:

%Vor%

Und wenn ich die GetInstance-Funktion anrufe, bekomme ich "Der angeforderte Dienst 'BigEye.Interfaces.Business.IUser' wurde nicht registriert". Sollte ich alle Komponenten in Business dll registrieren? Gibt es einen Weg, es zu tun? Weil sich Objekte und Services in Business im Laufe der Zeit ändern.

Danke

    
mehmetserif 10.05.2012, 08:40
quelle

1 Antwort

8

Ich nehme an, dass Ihre Assembly eine oder mehrere Implementierungen der IUser -Schnittstelle enthält. Jetzt, wenn du rennst:

%Vor%

Ohne zusätzliche Parameter registrieren Sie tatsächlich alle Typen in dieser Baugruppe , die nach Klasse codiert sind. Sie werden wahrscheinlich sehen, dass diese Lösung funktioniert:

%Vor%

Um Ihre Dienste nach Schnittstelle zu aktivieren, gehen Sie einfach wie folgt vor:

%Vor%

Nun werden alle Ihre Dienste von den Schnittstellen codiert, die sie implementieren, anstatt der spezifischen Klasse. Daher wird Folgendes funktionieren:

%Vor%     
Peter Lillevold 10.05.2012, 09:26
quelle