Automapper Zuordnung zu einer Schnittstelle: Ausnahme "Methode nicht implementiert"

8

Ich arbeite an einer MVC-Anwendung, die Inversion of Control verwendet und folglich Schnittstellenarten intensiv nutzt. Konkrete Implementierungen werden je nach Bedarf von einem Abhängigkeits-Resolver injiziert. Die Entitätsschnittstellen erben von einer Basisschnittstelle, die einige grundlegende Verwaltungsfunktionen für die Entitäten beschreibt. ViewModels sind ebenfalls weit verbreitet.

Die App verwendet Automapper und ich habe Zuordnungen von Ansichtsmodellen zu verschiedenen Entitätsschnittstellen erstellt. Die Zuordnungskonfiguration wird korrekt validiert. Wenn ich Automapper aufrufen, um eine Zuordnung durchzuführen, schlägt der Code jedoch mit TypeLoadException fehl.

Ich glaube, dass Automapper in der Lage ist, auf Interfaces zu mappen (siehe ) von Jimmy Bogard).

Es scheint möglich, dass der Automapper-Proxy-Generator das Hinzufügen von MyMethod () zum Proxy weggelassen hat und dies eine Ausnahme verursacht, wenn Reflection versucht, den Typ zu erstellen.

Wenn das nicht der Fall ist, wie bekomme ich diese Karte? Habe ich etwas Offensichtliches verpasst?

Hier ist eine vereinfachte Konsolenanwendung, die das Szenario veranschaulicht und den Fehler beim Ausführen reproduziert:

%Vor%

Die Ausnahme ist:

%Vor%     
Paul Taylor 30.08.2013, 14:55
quelle

1 Antwort

7

Wenn Sie eine Schnittstelle als Ziel verwenden, erstellt AutoMapper einen Proxy-Typ für Sie, der jedoch nur Eigenschaften unterstützt.

Um das Problem zu umgehen, können Sie AutoMapper sagen, wie das Zielobjekt mit ConstructUsing in Ihrem Mapping erstellt werden soll. In Ihrem obigen Beispiel würde Ihre Create Map so aussehen ...

%Vor%

Als Referenz habe ich das in diesem SO-Artikel herausgefunden: Ссылка

    
Sean 25.04.2014 12:46
quelle

Tags und Links