Нет, вы не можете назначать атрибуты во время выполнения, не выполняя довольно сложную магию с динамической генерацией классов.
Хорошо, я не понимаю TypeDescriptor
:)
Таким образом, в общем случае вам нужно создать собственный ICustomTypeDescriptor и реализовать метод GetProperties для возврата массива атрибутов расширяемого атрибута PropertyDescriptor ( после конструктора ).
static Attribute[] AddAttribute(Attribute[] attributes, Attribute attr) {
Array.Resize(ref attributes, attributes.Length + 1);
attributes[attributes.Length - 1] = new attr;
return attributes;
}
public MyPropertyDescriptor(MemberDescriptor propDef)
: base(propDef, AddAttribute(propDef.Attributes, new DataMembeAttribute()))