Soalan: Mengakses Sifat dalam .NET Dynamic Objects
Pembangun .NET sering menghadapi situasi yang memerlukan akses kepada sifat objek dinamik. Walau bagaimanapun, teknik pantulan standard mungkin terbukti tidak berkesan dengan objek dinamik. Soalan ini meneroka cabaran ini dan mencari penyelesaian dalam rangka kerja .NET 4.
Jawapan: Memanfaatkan Antara Muka IDictionary
Untuk ExpandoObject
contoh, penyelesaian mudah wujud. ExpandoObject
melaksanakan antara muka IDictionary<string, object>
, membenarkan akses harta terus melalui penghantaran:
<code class="language-csharp">IDictionary<string, object> propertyValues = (IDictionary<string, object>)s;</code>
Kaedah ini, walau bagaimanapun, terpakai secara eksklusif untuk ExpandoObject
dan tidak akan digeneralisasikan kepada jenis objek dinamik yang lain.
Mengatasi Objek Dinamik Am
Mengendalikan objek dinamik sewenang-wenang (di luar ExpandoObject
) memerlukan pendekatan yang lebih canggih. Ini biasanya melibatkan penggunaan Dynamic Language Runtime (DLR) dan antara muka IDynamicMetaObjectProvider
untuk mendapatkan semula nilai sifat secara dinamik. Pelaksanaan khusus bergantung pada sifat objek dinamik yang dipersoalkan.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Hartanah daripada Objek Dinamik dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!