607 {
608 foreach (Attribute attribute2
in TypeDescriptor.GetAttributes(
PropertyType))
609 {
610 attributes.
Add(attribute2);
611 }
613 int num = 0;
614 while (
type !=
null &&
type != typeof(
object))
615 {
616 num++;
618 }
619 if (num > 0)
620 {
623 while (
type !=
null &&
type != typeof(
object))
624 {
626 BindingFlags bindingAttr = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public |
BindingFlags.NonPublic;
628 if (memberInfo != null)
629 {
630 array[--num] = ReflectTypeDescriptionProvider.ReflectGetAttributes(memberInfo);
631 }
633 }
635 foreach (Attribute[] array3 in array2)
636 {
637 if (array3 == null)
638 {
639 continue;
640 }
642 foreach (Attribute attribute in array4)
643 {
644 if (!(attribute is AttributeProviderAttribute attributeProviderAttribute))
645 {
646 continue;
647 }
648 Type type2 =
Type.GetType(attributeProviderAttribute.TypeName);
649 if (!(type2 != null))
650 {
651 continue;
652 }
654 if (!string.IsNullOrEmpty(attributeProviderAttribute.PropertyName))
655 {
656 MemberInfo[] member = type2.GetMember(attributeProviderAttribute.PropertyName);
657 if (member.Length != 0 && member[0] != null)
658 {
659 array5 = ReflectTypeDescriptionProvider.ReflectGetAttributes(member[0]);
660 }
661 }
662 else
663 {
664 array5 = ReflectTypeDescriptionProvider.ReflectGetAttributes(type2);
665 }
666 if (array5 != null)
667 {
669 foreach (Attribute value2 in array6)
670 {
671 attributes.
Add(value2);
672 }
673 }
674 }
675 }
677 foreach (Attribute[] array8 in array7)
678 {
679 if (array8 != null)
680 {
682 foreach (Attribute value3 in array9)
683 {
684 attributes.
Add(value3);
685 }
686 }
687 }
688 }
689 base.FillAttributes(attributes);
691 {
692 attributes.
Add(ReadOnlyAttribute.Yes);
693 }
694 }
MethodInfo SetMethodValue
readonly Type _componentClass
readonly Type _receiverType
override Type PropertyType
static readonly Type[] EmptyTypes