Ich habe ein Objekt in C# mit etwa 20 Eigenschaften und es ist Teil eines Datenvertrags. Ich habe auch eine andere Geschäftseinheit mit ähnlichen Eigenschaften, die ich aus dem Antwortobjekt auffüllen möchte. Gibt es eine Möglichkeit, dies zu tun, außer jeder Eigenschaft eines Objekts den entsprechenden Eigenschaften des anderen zuzuweisen?Erstellen von Objekten aus einem anderen Objekt mit denselben Eigenschaften
Antwort
Ja, werfen Sie einen Blick auf Automapper
C# Object Clone Wars könnte ein guter Ausgangspunkt sein.
Reflektion ist eine Option, wenn Sie dies auf automatisierte Weise tun möchten, sofern die Eigenschaftsnamen leicht zwischen den Objekten zugeordnet werden können.
Automapper ist einen Versuch wert, aber am Ende entschied ich, dass es nicht für mich war. Das große Problem mit diesen Arten von Tools ist, dass Sie eine Menge Laufzeit Overhead jedes Mal ein Mapping auftritt. Ich fragte diese same question last week und ich landete meine eigene Lösung (siehe die angenommene Antwort). Es steht Ihnen frei, die Quelle, die ich zur Verfügung gestellt habe, zu ändern. Ich mache keinen Anspruch auf Effektivität, Eignung, Leistung, Sie-break-it-you-to-keep-the-pieces usw., aber es funktioniert gut genug für mich, um Design-Zeit-Objekt zu Objekt-Mapping zu erstellen.
MiscUtil eine Antwort auf diese (PropertyCopy
) hat, die Expression
(.NET 3.5) und ein statisches Feld verwendet den kompilierten Delegat zwischenzuspeichern (so ist es vernachlässigbaren Kosten pro invoke):
DestType clone = PropertyCopy<DestType>.CopyFrom(original);
Wenn Sie mit 2,0, dann wäre wahrscheinlich Reflexion Ihr Freund. Sie können HyperDescriptor
verwenden, um die Leistung zu verbessern, wenn Sie benötigen.
- 1. Eigenschaften stdClass Objekt von einem anderen Objekt
- 2. Erstellen eines Objekts mit allen Eigenschaften von zwei anderen Objekten?
- 3. Erstellen eines Arrays aus Eigenschaften von Objekten in einem anderen Array
- 4. Rückgabe von Objekten aus einem anderen Thread?
- 5. Java8 Streams mit einer Liste von Objekten aus einem anderen
- 6. Extrahieren von Eigenschaften aus NSArray von Objekten
- 7. Wie Eigenschaften aus einem Objekt in PHP
- 8. Erstellen von Django-Objekten mit einem zufälligen Primärschlüssel
- 9. Erstellen von neuen Objekten aus eingefrorenen übergeordneten Objekten
- 10. Erstellen von Objekten aus Variablen es6
- 11. Zurücksetzen von Eigenschaften aus einem Eigenschaftenraster
- 12. Erstellen Sie QML-Objekt aus C++ mit angegebenen Eigenschaften
- 13. Objekt durch Gruppieren von CamelCase-Eigenschaften erstellen
- 14. Auflisten und Kopieren von Eigenschaften von einem Objekt zu einem anderen Objekt desselben Typs
- 15. Erstellen von Javascript-Objekten aus einer Vorlage
- 16. Allgemeine Gruppierung von Objekten Eigenschaften
- 17. Entfernen übereinstimmende Objekt aus Array von Objekten mit Javascript
- 18. Hinzufügen von CSS-Eigenschaften zu einer Objektgruppe aus einem Objekt
- 19. Set propperties von einem Objekt zu einem anderen ‚ähnlich‘ Objekt in C#
- 20. Entsprechendes Objekt aus einem Array von Objekten entfernen?
- 21. vb.net - Füllen einer Combobox mit mehreren Eigenschaften aus Objekt
- 22. erstellen XmlDocument aus einem anderen Dokument
- 23. dynamisch erstellen Objekt mit Eigenschaften in Javascript
- 24. Sortieren NSMutableArray mit benutzerdefinierten Objekten von einem anderen NSMutableArray
- 25. Hibernate - Übertragen von einer Colleciton von Objekten von einem übergeordneten Objekt zu einem anderen
- 26. Zugriff auf Eigenschaften von Objekten in einem NSSet
- 27. Entfernen Duplikate aus einem Array von Objekten
- 28. Wie entfernt man Eigenschaften aus einem Objekt-Array?
- 29. Suchen nach Objekten in einem Array (benutzerdefinierte Objekte mit Eigenschaften)
- 30. Speichern Array von Objekten mit Eigenschaften plist