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

ValueInjecter und DataTable

Ich habe versucht, ValueInjecter herauszufinden, damit ich es in unserem selbstgebauten kleinen ORM verwenden kann. Da ich DataRow und DataTable Mapping unterstützen sollte, versuche ich Mapper für diese Typen zu implementieren. Und ehrlich gesa...
28.03.2011, 17:24
1
Antwort

Mehrere Zuordnungen für denselben Typ mit AutoMapper

Ich brauche Hilfe mit meinem Mapper -Programm. Ich habe zwei Typen (sagen wir A und B) und ich möchte zwei verschiedene Zuordnungen haben. In einer Methode möchte ich die erste Abbildung zwischen A und B verwenden und in einer anderen Methode...
05.06.2011, 13:24
2
Antworten

Automapper Vererbung - Karten wiederverwenden

Ich versuche, Autoadapter zu verwenden, um eine einzelne Zuordnung für ein übergeordnetes Objekt zu erstellen und dieses unter seinen untergeordneten Objekten wiederzuverwenden. Für untergeordnete Eigenschaften möchte ich nur die zusätzlichen...
02.06.2011, 09:11
1
Antwort

Zusätzliche Iterationen in einer foreach in einer AutoMapper-Map

Aus irgendeinem Grund iteriert eine Schleife, die ich in einer AutoMapper-Map-Definition verwende, mehr als sie sollte. Die Kartendefinition: %Vor% Der Foreach in BeforeMap wird aus irgendeinem Grund mehrmals über das Array s.PlatformI...
23.06.2011, 20:24
2
Antworten

In AutoMapper können Sie den gleichen Wert Resolver auf mehrere Mitglieder anwenden

Ich habe einen Mapping-Code wie folgt %Vor% Wie Sie sehen können, mappe ich mehrere Mitglieder mit demselben Resolver, um eine ganze Zahl in eine formatierte Währungszeichenfolge zu konvertieren. Ich mache das für die große Mehrheit, aber ni...
27.11.2015, 12:08
1
Antwort

Automapper löst den Zieltyp basierend auf dem Wert einer Aufzählung im Quelltyp auf

Ich versuche, einen Weg zu finden, wie Automapper den Zieltyp eines aufzurufenden Anrufs auswählen kann, basierend auf einem Enum-Wert, der im Quelltyp eingestellt ist ... z.B. Gegeben die folgenden Klassen: %Vor% Wenn ich das folgende Ob...
26.09.2012, 14:55
2
Antworten

Automapper - Groß- / Kleinschreibung beachten

Aus ähnlichen Fragen hier habe ich hier gelesen, dass AutoMapper früher Groß-und Kleinschreibung, aber jetzt ist Groß-und Kleinschreibung. Ich möchte, dass Groß- und Kleinschreibung beachtet wird - ich sehe keinen Weg, dies zu ändern, und kei...
15.12.2013, 21:34
2
Antworten

AutoMapper-Zuordnungstiefe

Gibt es eine Möglichkeit, die "Tiefe" des Mappings auf eine Entity während der Zuordnung zu dto zu setzen? Danke!     
13.03.2011, 13:44
1
Antwort

AutoMapper Custom Type Converter funktioniert nicht

Ich benutze Troy Goodes PagedList , um Auslagerungsinformationen in meinem WebApi bereitzustellen. Sein Paket gibt eine IPagedList zurück, die IEnumerable implementiert, aber auch benutzerdefinierte Eigenschaften wie IsLastPage, PageNumber, Pag...
18.09.2012, 03:54
1
Antwort

Wie reduziere ich ein bedingtes Objekt in einer Liste im Auto-Mapper?

Ich habe eine Item , die eine Liste von Product enthält, die mit AutoMapper ihren jeweiligen ViewModel -Objekten zugeordnet sind. In meinem MVC-Projekt habe ich eine Action-Methode, die Item mit einem ausgewählten Product anze...
13.01.2014, 08:58