كيف أضيف محالين محاكمة إلى فئة إلى حد ما، ثم تجاوزها؟

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

سؤال

إذا كان لدي فئة تنفذ Isustomypedescripttor. يمكنني تجاوز getproperties () طريقة لاستبدال جميع خصائص الفصل بالكامل مع مخصص propertydescriptors..

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

على سبيل المثال، أريد أن يكون المستخدم قادرا على تحديد الخصائص المخصصة في برنامجي الذي سيظهر في شبكة الخاصية. سيتم تخزين قيم الخصائص المخصصة في القاموس (مفتاح السلسلة، قيمة الكائن) جمع، وأريد إلحاق propertydescriptors. سيؤدي ذلك إلى قراءة القيم وكتابةها أيضا ومن هذه المجموعة بناء على القيم الرئيسية.

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

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

المحلول

يجب أن تكون قادرة على إضافة فقط إلى المجموعة الحالية:

    public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
    {
        PropertyDescriptorCollection cols = base.GetProperties(attributes);
        cols.Add(); // Add your custom property descriptor here
        return cols;
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top