ExpandoObject
ExpandoObject oldingi misolda yaratilgan DynamicObject bilan o'xshash ishlaydi. Farqi shundaki, siz hech qanday usullarni bekor qilishingiz shart emas.
Agar siz dinamik ob'ekt xususiyatlarini qo'shish va unga kirishni boshqarishingiz kerak bo'lsa, eng yaxshi tanlov DynamicObject-dan meros bo'lib qoladi. Ob'ektning ish vaqti bilan o'zaro ta'sirini bekor qilish va nozik sozlash uchun DynamicObject bilan bir nechta usullardan foydalanish mumkin. Boshqa holatlar uchun dinamik yoki ExpandoObject turi mos keladi.
ExpandoObject klassi
Ta'rif:Ishlash vaqtida a'zolari dinamik ravishda qo'shilishi va olib tashlanishi mumkin bo'lgan ob'ektni ifodalaydi.
C#
public sealed class ExpandoObject : System.Collections.Generic.ICollection>, System.Collections.Generic.IDictionary, System.Collections.Generic.IEnumerable>, System.ComponentModel.INotifyPropertyChanged, System.Dynamic.IDynamicMetaObjectProvider
Inheritance Ob'ektExpandoObject
Amalga oshirish
ICollection> ICollection> IDictionary IEnumerable> IEnumerable> IEnumerable IEnumerable INotifyPropertyChanged IDynamicMetaObjectProvider
Izohlar
ExpandoObject klassi ishga tushirish vaqtida uning namunalari a'zolarini qo'shish va o'chirish, shuningdek, ushbu a'zolarning qiymatlarini o'rnatish va olish imkonini beradi. Bu sinf dinamik bogʻlashni qoʻllab-quvvatlaydi, bu sizga sampleObject.sampleMember kabi murakkab sintaksis oʻrniga sampleObject.GetAttribute("sampleMember") kabi standart sintaksisdan foydalanish imkonini beradi.
ExpandoObject klassi standart Dynamic Language Runtime (DLR) interfeysi IDynamicMetaObjectProviderni amalga oshiradi, bu sizga ExpandoObject klassi misollarini DLR o‘zaro ishlash modelini qo‘llab-quvvatlaydigan tillar o‘rtasida almashish imkonini beradi. Misol uchun, siz C# da ExpandoObject sinfining namunasini yaratishingiz va keyin uni IronPython funksiyasiga o'tkazishingiz mumkin. Qo'shimcha ma'lumot olish uchun C# tez-tez so'raladigan savollar veb-saytidagi Dinamik tilning ishlash vaqtiga umumiy nuqtai nazar va ExpandoObject bilan tanishish bo'limlariga qarang.
ExpandoObject klassi dinamik ob'ekt kontseptsiyasining amalga oshirilishi bo'lib, a'zolarni olish, sozlash va chaqirish imkonini beradi. Agar siz o'zlarining dinamik jo'natish semantikasiga ega bo'lgan turlarni aniqlamoqchi bo'lsangiz, DynamicObject sinfidan foydalaning. Agar siz dinamik ob'ektlarning birgalikda ishlash protokolida qanday ishtirok etishini aniqlashni va DLR tezkor dinamik jo'natish keshlashni boshqarishni istasangiz, IDynamicMetaObjectProvider interfeysining o'z ilovasini yarating.
Do'stlaringiz bilan baham: |