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!

    
___
1
Antwort

Automapper Map von verschachtelter Klasse zu Single (flatten)

Das ist meine Quelle: %Vor% Das ist mein Ziel: %Vor% Wie mache ich das Mapping? Die normale Erstellungszuordnung funktioniert nicht, wenn sie sagt, dass das Reduzieren automatisch ist.     
09.11.2011, 00:03
2
Antworten

Ordnen Sie die Zeichenkette zum Aufstellen mit dem Automapper zu

Mein Problem besteht darin, ein Viewmodel von einem Linq2Sql-Objekt zu hydratisieren, das von der Datenbank zurückgegeben wurde. Wir haben dies in ein paar Bereichen gemacht und haben ein schönes mehrschichtiges Muster dafür entwickelt, aber das...
20.09.2010, 13:56
5
Antworten

Kopieren von Modellen zwischen Layern

Beim Überfahren von Ebenen ist es sehr mühsam, rechts- & gt; linke Zuordnungen als eine Möglichkeit zum Auffüllen der Modelle durchzuführen. Zum Beispiel: %Vor% So können wir einen ModelCopier erstellen, der Modelle mit Reflektion kopiert:...
27.08.2010, 13:22
1
Antwort

Verwenden von AfterMap zum Zuordnen von Eigenschaften für die Auflistungseigenschaft

Ich habe zwei Entitäten und zwei DTOs. Ich ordne die Entitäten den DTOs zu. Vereinfachte Versionen der DTOs sehen folgendermaßen aus: %Vor% Die Klassen Foo und Bar sind: %Vor% Die Zuordnung Ich mappe das in einer Methode wie...
26.02.2016, 09:04
2
Antworten

AutoMapper generisches Mapping

Ich habe auf StackOverflow gesucht und habe darüber gegoogelt, aber ich konnte keine Hilfe oder Anregung dazu finden. Ich habe eine Klasse wie die folgende, die ein PagedList -Objekt erstellt und verwendet auch AutoMapper, um Typen von Que...
01.04.2015, 00:41
3
Antworten

Datei oder Assembly 'AutoMapper' oder eine seiner Abhängigkeiten konnte nicht geladen werden

Ich habe dieses Problem bei der Bereitstellung, ich weiß wirklich nicht, wie ich es lösen soll. Irgendeine Idee? %Vor% System.Web.Compilation.BuildManager.CompileGlobalAsax () +50    System.Web.Compilation.BuildManager.EnsureTopLevelFilesCom...
07.11.2011, 20:56
3
Antworten

Registrierung von AutoMapper 4.2.0 mit Simple Injector

Aktualisiert auf AutoMapper 4.2.0 und dem hier verfügbaren Migrationsleitfaden folgend: Ссылка . Versuchen, Code auf dieser Seite für StructureMap zu Simple Injector zu übersetzen. Kann mir jemand zeigen, wie dieser Code in Simple Injector auss...
12.02.2016, 19:29
2
Antworten

Benutze ich die Funktionalität von Automapper 2.0 Include korrekt?

Entweder ich nicht, oder es funktioniert nicht ... Ich habe eine einzelne Quellklasse, die ich mehreren Ansichten zuordnen möchte, die voneinander erben. Grundsätzlich ist die Basisklasse das Detail, und die Kindklasse ist Bearbeiten oder Akt...
14.01.2012, 17:31
3
Antworten

Wenn Automapper Dienste verwendet, die von einem Autofac mit WebApi erstellt wurden

Ich verwende WebAPI + Autofac + Automapper mit einem Repository für den Datenzugriff. Ich muss meinen Domain-Entitäten ein Modell zuordnen, insbesondere muss ich einen Identitätswert in die tatsächliche Entität konvertieren. Keine große Sache, o...
11.09.2013, 04:01
1
Antwort

Automapper kann einen Enum-Typ nicht in einen anderen projizieren

Ich nutze die Projektfunktionalität in Automapper und Entity Framework, aber ich stoße auf ein Problem, bei dem Automapper anscheinend keinen Aufzählungstyp zu einem anderen projizieren möchte. Ich habe folgende Entitäten: %Vor% Ich proji...
17.09.2014, 17:22