Autofac 3 und Automapper
Kennt jemand eine umfassende Anleitung zur Einrichtung Automapper mit Autofac. Ich kenne beides, aber ich habe gespielt, um mit dem statischen Mapper Klasse aber ich möchte in der Lage sein, zu verspotten und zu injizieren IMappingEngine und eine Konfiguration erstellen, die setzt alle meine Zuordnungen. Alle guides die ich habe mir bisher nicht wirklich erklären, was Los ist und ich kann nicht ganz arbeiten. Auch ich bin mit Autofac 3.0, die scheint, haben einige Unterschiede in der ContainerBuilder Methoden, die nicht helfen (der Grund, warum ich mit ist es, dass Autofac.mvc4 abhängt).
Update:
OK, die einfachste Lösung scheint zu funktionieren gut genug, aber ich hatte nicht gesehen, dass es überall auf das internet und das vielleicht aus gutem Grund, den ich nicht kenne? Die einfachste Sache zu tun, ist nur zum Registrieren der statischen Mapper.Motor als IMappingEngine und trotzdem die statische Mapper.CreateMap zu konfigurieren, in den ersten Platz.
var builder = new ContainerBuilder();
builder.Register<IMappingEngine>(c => Mapper.Engine);
Nun Autofac gelingen kann, die IMappingEngine in Ihren Konstruktoren. Dies bedeutet jedoch, dass der Mapper übernimmt die IMappingEngine singleton anstatt Autofac und Autofac ist nur als einen wrapper für es. Ich möchte Autofac zu handhaben, die IMappingEngine Instanz, aber ich bin mir nicht sicher, wie?
- Was haben Sie versucht? Haben Sie Lesen Sie Jimmy ' s IoC-Artikel, oder sah ähnliche Fragen, oder Lesen eine blog posts, oder schaute auf die AutoMapper mailing-Liste? Wenn Sie lassen Sie uns wissen, wo du bist, stecken wir möglicherweise in der Lage zu helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre einfache Lösung ist OK, vorausgesetzt, dass Sie nicht wollen, zu verspotten, die mapper in unit-tests oder erstellen, die Mapper mit modifizierten Konfigurationen für verschachtelte Lebensdauer Bereiche (letzteres sieht ein bisschen komisch zu mir, aber wer weiß).
Wenn Sie das brauchen, können Sie abholen einige Teile des Codes aus die
Mapper
Klasse und registrieren von Komponenten wie diese:Ich bin mir nicht sicher, ob Sie wirklich brauchen, um machen
IMappingEngine
ein singleton. Es sollte Recht leicht zu schaffen, pro-Abhängigkeit.Nun können Sie es wie folgt:
Können Sie auch automatische profile-Registrierung, wie diese:
Dann einfach registrieren Sie einen
Profile
Umsetzung überall in der Autofac-Konfiguration oder in einem Modul, um es zu bekommen süchtig bis zu der Konfiguration.