Saya ingin menambahkan properti secara dinamis ke ExpandoObject saat runtime. Jadi misalnya untuk menambahkan panggilan properti string NewProp saya ingin menulis sesuatu seperti
var x = new ExpandoObject();
x.AddProperty("NewProp", System.String);
Apakah ini mudah?
c#
c#-4.0
dynamic
expandoobject
Craig
sumber
sumber
Jawaban:
Kalau tidak:
sumber
Error 53 Cannot convert type 'System.Dynamic.ExpandoObject' to 'System.Collections.Generic.IDictionary<string,string>' via a reference conversion, boxing conversion, unboxing conversion, wrapping conversion, or null type conversion
IDictionary<string, object>
, tidakIDictionary<string, string>
.IDictionary
Anda tidak menggunakandynamic
sebagai tipe variabel.Sebagaimana dijelaskan di sini oleh Filip - http://www.filipekberg.se/2011/10/02/adding-properties-and-methods-to-an-expandoobject-dynamicly/
Anda juga dapat menambahkan metode saat runtime.
sumber
Berikut ini adalah contoh kelas pembantu yang mengubah Objek dan mengembalikan Expando dengan semua properti publik dari objek yang diberikan.
Pemakaian:
sumber
Saya pikir ini menambahkan properti baru dalam tipe yang diinginkan tanpa harus menetapkan nilai primitif, seperti ketika properti didefinisikan dalam definisi kelas
sumber