Wie kann ich die Eigenschaften eines anonymen Objekts in C # durchlaufen?

Ich möchte ein anonymes Objekt als Argument für eine Methode verwenden und dann seine Eigenschaften durchlaufen, um jede Eigenschaft / jeden Wert einem dynamischen @ hinzuzufügeExpandoObject.

Also, was ich brauche, ist zu gehen von

new { Prop1 = "first value", Prop2 = SomeObjectInstance, Prop3 = 1234 }

m die Namen und Werte der einzelnen Eigenschaften zu kennen und sie zum @ hinzufügen zu könnExpandoObject.

Wie mache ich das?

Side Hinweis: Dies wird in vielen meiner Unit-Tests durchgeführt (ich verwende es, um viel Müll im Setup zu beseitigen), daher ist die Leistung in gewissem Maße relevant. Ich weiß nicht genug über Reflexion, um es mit Sicherheit zu sagen, aber nach meinem Verständnis ist es ziemlich leistungsintensiv. Wenn es also möglich ist, würde ich es lieber vermeiden ...

Zusatzfrage Wie gesagt, ich nehme dieses anonyme Objekt als Argument für eine Methode. Welchen Datentyp soll ich in der Signatur der Methode verwenden? Werden alle Eigenschaften verfügbar sein, wenn ich @ benutzobject?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage