Create() static private method

static private Create ( PropertyDescriptor extenderProperty, Type receiverType, IExtenderProvider provider ) : ExtenderProvidedPropertyAttribute
extenderProperty PropertyDescriptor
receiverType System.Type
provider IExtenderProvider
return ExtenderProvidedPropertyAttribute
Ejemplo n.º 1
0
        public ExtendedPropertyDescriptor(ReflectPropertyDescriptor extenderInfo, Type receiverType, IExtenderProvider provider, Attribute[] attributes) : base(extenderInfo, attributes)
        {
            ArrayList list = new ArrayList(this.AttributeArray);

            list.Add(ExtenderProvidedPropertyAttribute.Create(extenderInfo, receiverType, provider));
            if (extenderInfo.IsReadOnly)
            {
                list.Add(ReadOnlyAttribute.Yes);
            }
            Attribute[] array = new Attribute[list.Count];
            list.CopyTo(array, 0);
            this.AttributeArray = array;
            this.extenderInfo   = extenderInfo;
            this.provider       = provider;
        }
        private readonly IExtenderProvider _provider;             // the guy providing it

        /// <summary>
        ///     Creates a new extended property info.  Callers can then treat this as
        ///     a standard property.
        /// </summary>
        public ExtendedPropertyDescriptor(ReflectPropertyDescriptor extenderInfo, Type receiverType, IExtenderProvider provider, Attribute[] attributes)
            : base(extenderInfo, attributes)
        {
            Debug.Assert(extenderInfo != null, "ExtendedPropertyDescriptor must have extenderInfo");
            Debug.Assert(provider != null, "ExtendedPropertyDescriptor must have provider");

            ArrayList attrList = new ArrayList(AttributeArray);

            attrList.Add(ExtenderProvidedPropertyAttribute.Create(extenderInfo, receiverType, provider));
            if (extenderInfo.IsReadOnly)
            {
                attrList.Add(ReadOnlyAttribute.Yes);
            }

            Attribute[] temp = new Attribute[attrList.Count];
            attrList.CopyTo(temp, 0);
            AttributeArray = temp;

            _extenderInfo = extenderInfo;
            _provider     = provider;
        }