تصفية خصائص إرجاعها بواسطة TypeDescriptor.GetProperties () اعتمادا على فئة يتم الإعلان عنها في

StackOverflow https://stackoverflow.com/questions/1443314

سؤال

ويا رفاق. لدي الحالة التالية.

وأريد أن استخدام TypeDescriptor للحصول على خصائص نوع معين. عمق نوع في التسلسل الهرمي الميراث قد تختلف. أريد فقط للحصول على خصائص أعلن في نوع نفسها وليس في والديه (القاعدة). المشكلة هي أنه عندما أدعو TypeDescriptor.GetProperties () فإنه يعود كل شيء أعلن أعلى التسلسل الهرمي الميراث تصل إلى كائن.

ورأيت فقط أستطيع أن تصفية الانتاج سمات، ولكن لا أريد لإضافة سمة أخرى إلى خصائص في أنواع بلدي فقط لهذا الغرض. الحصول عليها من خلال التأمل وعدم استخدام شأنه TypeDescriptor تفعل ما أريد، ولكن ليس خيارا بالنسبة لي، لأن بعض الخصائص ستضاف حيوي لنوع في مرحلة ما.

وأي أفكار؟ إذا كان السؤال غير واضح أنا يمكن أن توفر مثالا على ذلك.

هل كانت مفيدة؟

المحلول

وكما يمكنك تحديد خصائص باستخدام الخاصية ComponentType:

var properties = from p in TypeDescriptor.GetProperties(x).Cast<PropertyDescriptor>()
                 where p.ComponentType == x.GetType()
                 select p;

نصائح أخرى

ولا يمكنك فقط تعديل تنفيذ ICustomTypeDescriptor لتعكس السلوك المطلوب؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top