Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Hartanah dan Nilai daripada Objek Dinamik .NET 4?

Bagaimana untuk Mendapatkan Hartanah dan Nilai daripada Objek Dinamik .NET 4?

DDD
DDDasal
2025-01-22 23:17:15235semak imbas

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

Mendapatkan semula sifat daripada objek dinamik dalam .NET 4

Objek dinamik yang diisytiharkan menggunakan kata kunci dynamic dalam .NET 4 boleh menyebabkan cabaran apabila cuba mendapatkan nilai hartanah melalui refleksi.

Soalan:

Bagaimana untuk mendapatkan kamus nama atribut dan nilai sepadannya daripada objek dinamik?

Contoh:

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

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

Jawapan:

Untuk ExpandoObject objek, penyelesaiannya sangat mudah. ExpandoObject melaksanakan antara muka IDictionary<string, object> untuk sifatnya:

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

Sila ambil perhatian bahawa kaedah ini mungkin tidak berfungsi untuk semua objek dinamik. Untuk objek dinamik yang lebih umum, anda perlu menggunakan DLR melalui IDynamicMetaObjectProvider.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Hartanah dan Nilai daripada Objek Dinamik .NET 4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn