Di sana, misalnya, properti ViewBagControllerBase
kelas dan kita dapat secara dinamis mendapatkan / menetapkan nilai dan menambahkan sejumlah bidang atau properti tambahan ke objek ini, yang keren. Saya ingin menggunakan sesuatu seperti itu, di luar aplikasi MVC dan Controller
kelas di lain jenis aplikasi. Ketika saya mencoba membuat objek dinamis dan mengatur propertinya seperti di bawah ini:
1. dynamic MyDynamic = new { A="a" };
2. MyDynamic.A = "asd";
3. Console.WriteLine(MyDynamic.A);
Saya menerima RuntimeBinderException
pesan Properti atau pengindeks '<> f__AnonymousType0.A' tidak dapat ditugaskan - hanya dibaca di baris 2. Juga saya sarankan Ini bukan yang saya cari. Mungkin ada beberapa kelas yang memungkinkan saya melakukan sesuatu seperti:
??? MyDynamic = new ???();
MyDynamic.A = "A";
MyDynamic.B = "B";
MyDynamic.C = DateTime.Now;
MyDynamic.TheAnswerToLifeTheUniverseAndEverything = 42;
dengan penambahan dinamis dan pengaturan properti.
Baru-baru ini saya perlu mengambil langkah ini lebih jauh, yaitu membuat penambahan properti dalam objek dinamis, dinamis sendiri, berdasarkan entri yang ditentukan pengguna. Contoh di sini, dan dari dokumentasi Microsoft ExpandoObject , tidak secara khusus menangani penambahan properti secara dinamis, tetapi, dapat diperkirakan dari cara Anda menghitung dan menghapus properti. Bagaimanapun, saya pikir ini mungkin bermanfaat bagi seseorang. Berikut ini adalah versi yang sangat disederhanakan tentang cara menambahkan properti yang benar-benar dinamis ke dalam ExpandoObject (mengabaikan kata kunci dan penanganan lainnya):
sumber
ExpandoObject
adalah apa yang kamu cari.sumber
Anda bisa menggunakan
ExpandoObject Class
yang ada diSystem.Dynamic
namespace.Info lebih lanjut dapat ditemukan di ExpandoObject MSDN
sumber
sumber
sumber
Atau nilai hadir
sumber