Heim >Backend-Entwicklung >C++ >Wie rufe ich Eigenschaften und Werte von einem dynamischen .NET 4-Objekt ab?

Wie rufe ich Eigenschaften und Werte von einem dynamischen .NET 4-Objekt ab?

DDD
DDDOriginal
2025-01-22 23:17:15173Durchsuche

How to Retrieve Properties and Values from a .NET 4 Dynamic Object?

Eigenschaften von dynamischen Objekten in .NET 4 abrufen

Dynamische Objekte, die mit dem Schlüsselwort dynamic in .NET 4 deklariert wurden, können beim Versuch, Eigenschaftswerte über Reflektion abzurufen, zu Herausforderungen führen.

Frage:

Wie erhalte ich ein Wörterbuch mit Attributnamen und den entsprechenden Werten von einem dynamischen Objekt?

Beispiel:

<code class="language-csharp">dynamic s = new ExpandoObject();
s.Path = "/Home";
s.Name = "Home";

// 如何枚举 Path 和 Name 属性并检索它们的值?
IDictionary<string, object> propertyValues = ???</code>

Antwort:

Für ExpandoObject Objekte ist die Lösung sehr einfach. ExpandoObject implementiert die IDictionary<string, object>-Schnittstelle für ihre Eigenschaften:

<code class="language-csharp">IDictionary<string, object> propertyValues = (IDictionary<string, object>)s;</code>

Bitte beachten Sie, dass diese Methode möglicherweise nicht für alle dynamischen Objekte funktioniert. Für allgemeinere dynamische Objekte müssen Sie das DLR über IDynamicMetaObjectProvider verwenden.

Das obige ist der detaillierte Inhalt vonWie rufe ich Eigenschaften und Werte von einem dynamischen .NET 4-Objekt ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn