Saya menggunakan objek anonim untuk meneruskan Atribut Html saya ke beberapa metode pembantu. Jika konsumen tidak menambahkan atribut ID, saya ingin menambahkannya di metode helper saya.
Bagaimana cara menambahkan atribut ke objek anonim ini?
c#
reflection
anonymous-objects
Boris Callens
sumber
sumber
Kelas ekstensi berikut akan memberi Anda apa yang Anda butuhkan.
sumber
Saya berasumsi yang Anda maksud adalah tipe anonim di sini, misalnya,
new { Name1=value1, Name2=value2}
dll. Jika demikian, Anda kurang beruntung - tipe anonim adalah tipe normal karena mereka tetap, kode terkompilasi. Mereka kebetulan dibuat secara otomatis.Apa yang dapat Anda lakukan adalah menulis
new { old.Name1, old.Name2, ID=myId }
tetapi saya tidak tahu apakah itu yang Anda inginkan. Beberapa detail lebih lanjut tentang situasi (termasuk contoh kode) akan ideal.Alternatifnya, Anda bisa membuat objek kontainer yang selalu memiliki ID dan objek lain apa pun yang berisi properti lainnya.
sumber
Ini akan menerima nilai id yang seharusnya dimiliki kotak teks dan label yang harus dirujuk. Jika konsumen sekarang tidak menyertakan properti "id" di textBoxHtmlAttributes, metode ini akan membuat label yang salah.
Saya dapat memeriksa melalui refleksi jika atribut ini ditambahkan di objek labelHtmlAttributes. Jika demikian, saya ingin menambahkannya atau membuat objek anonim baru yang telah ditambahkannya. Tetapi karena saya tidak dapat membuat tipe anonim baru dengan menelusuri atribut lama dan menambahkan atribut "id" saya sendiri, saya agak macet.
Sebuah penampung dengan properti ID yang diketik dengan kuat dan kemudian properti "atribut" yang diketik secara anonim akan memerlukan penulisan ulang kode yang tidak membebani persyaratan "tambahkan bidang id".
Semoga tanggapan ini bisa dimengerti. Ini akhir hari, tidak bisa otak saya sejalan lagi ..
sumber