automapper

___ qstnhdr ___ Automapper zum Erstellen eines Objekts aus XML ___ answer6543753 ___

Sie müssen XML-Serialisierung in .NET auschecken - das ist der richtige Weg Serialisierung eines Objekts in XML oder Deserialisierung aus XML.

Automapper kann verwendet werden, um Eigenschaften zwischen zwei Objekten zu setzen - es geht überhaupt nicht um XML.

Weitere Ressourcen:

___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123sharepoint ___ SharePoint-spezifische Fragen finden Sie auf der Website SharePoint Stack Exchange (https://sharepoint.stackexchange.com). Verwenden Sie dieses Tag zum Programmieren von Fragen, die möglicherweise SharePoint betreffen. Microsoft SharePoint ist eine Plattform und eine Familie von Softwareprodukten, die von Microsoft für Collaboration und Web Publishing entwickelt wurden. ___ answer8564071 ___

Bit spät am Tag, aber jemand hat AutoMapper verwendet, um XML einem POCO zuzuordnen, anstatt die XMLSerialization-Route zu durchlaufen. Ich habe den folgenden Blogeintrag gefunden: - Vereinfachen Sie die Verwendung von Xml-Daten mit AutoMapper und Linq-to- Xml

Dies reicht aus, um mit der Implementierung eines eigenen generischen benutzerdefinierten Resolvers zu beginnen, wenn das Beispiel nicht ausreicht.

EDIT: feste Verbindung EDIT: wirklich fester Link

    
___ tag123Automapper ___ Ein konventionsbasierter Objekt-zu-Objekt-Mapper und -Tranformer für .NET ___ tag123linqtoxml ___ LINQ-to-XML bietet eine SQL-ähnliche Abfrageerfahrung zum Navigieren, Analysieren und Aggregieren von Daten, die in XML-Dokumenten gespeichert sind. ___ answer6543756 ___

Sie können zu diesem Zweck die XML-Deserialisierung verwenden. In .NET haben wir XmlSerializer und DataContractSerializer

    
___ qstntxt ___

Wenn ich die folgende Klasse habe:

%Vor%

Und ich verwende die Sharepoint-Webdienste, die ein XML mit einem Attribut für jede Eigenschaft meiner Klasse zurückgeben, wie zum Beispiel:

%Vor%

Gibt es eine Möglichkeit, AutoMapper zu verwenden, um das XML-Fragment einer %code% -Klasseninstanz zuzuordnen?

    
___ answer27501463 ___

Blog wurde gelöscht - hier ist das Bing-Archiv des Posts von @DannyDouglass

Vereinfachen Sie die Verwendung von Xml-Daten mit AutoMapper und Linq-to-Xml

Ich habe kürzlich ein Szenario bei der Arbeit kennengelernt, bei dem mehrere SOAP-Webdienste manuell in Anspruch genommen werden mussten. Ich bin mir sicher, dass Sie sich das als ziemlich eintönig vorstellen. Ein Mitarbeiter (Seth Carney) und ich versuchten ein paar verschiedene Ansätze, aber wir entschieden uns schließlich für eine Lösung, die den Verbrauch der XML-Datei vereinfachte und schließlich den Code testbarer machte. Bei dieser Lösung ging es um den Einsatz von AutoMapper, einem Open-Source-Objekt-Objekt-Mapping-Tool, um eine Verknüpfung zwischen den XElements zu erstellen ( Ссылка ) zurückgegeben in den SOAP-Nachrichten und benutzerdefinierte Verträge, die wir erstellt haben - in einer wiederverwendbaren Art und Weise.

Ich habe eine kurze Demo zusammengestellt, die zeigt, wie Sie die öffentliche Zeitleiste von Twitter verwenden und anzeigen können ( Ссылка ) (unter Verwendung des Xml-Antworttyps der API).

Hinweis: Der Quellcode für das folgende Beispiel kann auf meiner GitHub-Seite gefunden werden: Ссылка

  1. Abrufen des Projekt-Setups

Nach dem Erstellen eines grundlegenden MVC3-Projekts (Beta-Download) und des zugehörigen Testprojekts war der erste Schritt, das AutoMapper-Paket zu installieren. Ich benutze NuGet, das kürzlich angekündigte Paketverwaltungssystem von Microsoft, um jegliche Open-Source-Abhängigkeiten zu installieren. Der folgende Befehl war alles, was benötigt wurde, um AutoMapper in meinem MVC3-Projekt einzurichten (lesen Sie mehr über NuGet hier ( Ссылка ) und hier ( Ссылка )):

%Vor%
  1. Erstellen der Zuordnung

Wenn AutoMapper installiert ist, kann ich mit dem Erstellen der für die XML-zu-Objekt-Zuordnung erforderlichen Komponenten beginnen. Der erste Schritt besteht darin, einen schnellen Vertrag zu erstellen, der in meiner Anwendung verwendet wird, um das Tweet-Objekt darzustellen:

%Vor%

Nichts Verrücktes hier - nur eine einfache Einheit. Dies sind alle Felder, die in der Antwort von der Twitter-API unter Verwendung eines anderen Namens für einige Felder bereitgestellt werden. In einfachen Fällen, in denen die Quell- und Zielobjekte denselben Namen haben, können Sie eine Karte sehr schnell mit dieser Syntax einrichten:

%Vor%

AutoMapper unterstützt jedoch Xml standardmäßig nicht. Ich muss die Felder angeben, die ich zuordnen werde. Mit der Fluent-API in AutoMapper kann ich meine Feldzuordnungen verketten. Sehen Sie sich ein Beispielfeld an, das in meinem Beispiel abgebildet ist - den Body des Tweets:

%Vor%

Es mag zunächst kompliziert aussehen, aber hier geschieht nur, dass wir AutoMapper Details darüber zur Verfügung stellen, welchen Wert ich in meinem Quellobjekt verwenden soll und wie es der Eigenschaft des Zielobjekts zugeordnet wird. Es gibt eine bestimmte Zeile, auf die ich mich im obigen Body-Feld-Mapping konzentrieren möchte:

%Vor%

Der XElementResolver ist ein benutzerdefinierter Wert-Resolver ( Ссылка ), den Seth entwickelt hat Analysieren des XmlElement-Quellobjekts, um einen stark typisierten Wert für die Verwendung im Mapping abzurufen. Ich werde das in einem Moment genauer beschreiben, aber bevor wir weitermachen, werfen Sie einen Blick auf mein vollständiges Mapping:

%Vor%
  1. Der generische XElementResolver

Dieser benutzerdefinierte Wert-Resolver ist der echte Schlüssel, mit dem diese XElement-to-Contract-Maps in der ursprünglichen Lösung funktionieren. Ich habe diesen Resolver in diesem Beispiel wie oben beschrieben wieder verwendet. Das war alles, was zum Erstellen der benutzerdefinierten Resolver-Klasse erforderlich war:

%Vor%

Dieser generische XElementResolver ermöglicht es, den Typ des in unserer obigen Abbildung abgerufenen Wertes einfach zu übergeben. Beispielsweise wird die folgende Syntax verwendet, um den Wert, der aus dem XmlElement abgerufen wird, in der obigen Deklaration .ForMember () des ID-Felds zu schreiben:

%Vor%

Wenn mein Mapping vollständig konfiguriert und instanziiert ist, kann ich die Twitter-API aufrufen und AutoMapper verwenden, um die neueste öffentliche Zeitleiste anzuzeigen.

  1. Die Stücke zusammenfügen

Ich habe eine einfache Klasse erstellt, die für das Abrufen der Twitter-API-Antwort verantwortlich ist:

%Vor%

Die GetPublicTimeline-Methode ist eine einfache Methode, die, wie Sie es erraten haben, die öffentliche Zeitleiste von Twitter unter Verwendung der zuvor erstellten Karte zurückgibt:

%Vor%

Im HomeController meiner MVC3-Site kann ich schnell die Abrufmethode aufrufen und die letzten 10 Ergebnisse anfordern:

%Vor%

Und schließlich, nach ein wenig Formatierung in meiner Ansicht mit der neuen Razor View-Engine von Microsoft, habe ich meine öffentliche Zeitleiste angezeigt!

    
___
3
Antworten

Automapper verschachtelte Zuordnung

Ich habe die Wiki-Seite für das verschachtelte Mapping gelesen, scheint aber mehrere Verschachtelungsebenen nicht zu mögen. Ich habe die folgenden Karten erstellt und Klassen definiert. %Vor% Aber der folgende Code ... %Vor% Funktioniert...
24.10.2011, 14:02
2
Antworten

Automapper und Unveränderlichkeit

Ist es möglich, AutoMapper mit unveränderlichen Typen zu verwenden? Zum Beispiel ist mein Domain-Typ unveränderlich und ich möchte meinen View-Typ diesem zuordnen. Ich glaube, es ist nicht so, aber will nur das bestätigt. Wie ist es am...
03.02.2010, 21:44
1
Antwort

Automapper 4.2.1 LINQ-Projektionen funktionieren nur mit statischer Mapper.CreateMap?

Ich versuche, Automapper-Projektionen auf Entity Framework IQueryables zu verwenden. Beim Start der Anwendung erstelle ich alle meine Zuordnungsprofile, die Karten mit der nicht statischen CreateMap-Methode erstellen, und füge sie hinzu. A...
12.04.2016, 07:19
2
Antworten

Wo kann ich AutoMapper-Zuordnungen in einem Orchard-Modul initialisieren?

Ich bin damit beschäftigt, mein erstes, nicht beispielhaftes Orchard-Modul zu entwickeln. Es ist eine Handvoll von Controllern und Ansichten, mit benutzerdefinierten (EF) Datenzugriff und ist weitgehend unabhängig von Orchard Content-Typen und T...
21.12.2012, 06:24
2
Antworten

Referenzimplementierung von ASP.NET MVC mit ViewModels, EditModels und AutoMapper

Eine einfache Frage: Gibt es eine gute Referenzimplementierung für die Verwendung von ASP.NET MVC mit einem ORM, ViewModels und EditModels (idealerweise mit Automapper)? Ich verstehe die Vorteile der Verwendung dieser zweckspezifischen Modell...
05.11.2010, 13:47
1
Antwort

Einfacher Injektor registriert IMappingEngine (AutoMapper)

Ich habe vorher Autofac benutzt, aber jetzt möchte ich SimpleInjector ausprobieren. Mein Problem ist, beim Aufruf der Mapping Engine in meiner Methode bekomme ich den folgenden Fehler:    Fehlende Typzuordnungskonfiguration oder nicht unters...
21.09.2012, 20:51
1
Antwort

AutoMapper - Was ist der Unterschied zwischen Condition und PreCondition?

Angenommen eine Zuordnung mit AutoMapper wie unten: %Vor% Was ist der Unterschied der Ersatzbedingung durch PreCondition: %Vor% Was ist der praktische Unterschied zwischen diesen beiden Methoden?     
17.11.2016, 15:18
1
Antwort

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

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...
30.08.2013, 14:55
3
Antworten

AutoMapper einspritzen

Ich habe daran gearbeitet, AutoMapper in Controller zu injizieren. Ich mag die Implementierung von Code Camp Server. Es erstellt einen Wrapper um AutoMappers IMappingEngine. Die Abhängigkeitsinjektion erfolgt mithilfe von StructureMap. Aber ich...
12.11.2009, 03:37
3
Antworten

Kann AutoMapper "überredet" werden, bestimmte Zuordnungen vorübergehend auszusetzen?

Kann AutoMapper "überredet" werden, bestimmte Zuordnungen vorübergehend auszusetzen? Um zu veranschaulichen, was ich erreichen möchte, werde ich eine Illustration verwenden. Angenommen, ich verfüge über ein Repository, StudentRepository , da...
22.05.2012, 14:37