public DynamicPropDescriptor(Object instance,
     PropertyDescriptor origPropertyDescriptor,
     DynPropertyOverrideList dynamicProps,
     DynPropertyOverride dynProp,
     Attribute[] attributes)
     : base(origPropertyDescriptor.Name, attributes)
 {
     mInstance = instance;
     mOrigProp = origPropertyDescriptor;
     mDynamicProps = dynamicProps;
     mDynProp = dynProp;
     //            CreateAttributeCollection();
 }
        /// <summary>
        /// Replaces/adds the overriden attributes
        /// </summary>
        private void doAttributeOverrides(DynPropertyOverride dynProp, List<Attribute> newAttributeList)
        {
            int iAttrIndex;

            foreach (DynAttribute dynAttribute in dynProp.Overrides)
            {
                iAttrIndex = -1;
                if (dynAttribute.Value == null)
                    continue;
                for (int iCurAttrIndex = 0; iCurAttrIndex < newAttributeList.Count; iCurAttrIndex++)
                {
                    if (dynAttribute.Equals(newAttributeList[iCurAttrIndex]))
                    {
                        iAttrIndex = iCurAttrIndex;
                        break;
                    }
                }

                if (iAttrIndex != -1)
                {
                    newAttributeList.RemoveAt(iAttrIndex);
                    newAttributeList.Insert(iAttrIndex, dynAttribute.Value);
                }
                else
                {
                    newAttributeList.Add(dynAttribute.Value);
                }
            }
        }