Учитывая экземпляр класса, я хочу установить свойства атрибутов во время выполнения.Поиск атрибутов свойств экземпляра класса
Итак, я пробовал это, но, насколько я могу судить, это находит атрибуты класса, а не экземпляр, поэтому любые изменения, которые я вношу в свойства атрибута, не влияют.
var properties = myObject.GetType().GetProperties();
foreach (object prop in properties)
{
var attribute =prop.GetCustomAttributes(typeof(MyAttribute), true)[0];
//attribute.MyProp do some stuff
}
Если я попробовать использовать тип дескриптора, как показано ниже, нет никакого способа добраться до атрибутов на свойства.
var myObject= (MyClass) object;
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(myObject);
//There is no props[0].GetCustomAttributes(
Это не может работать. Атрибуты должны быть неизменными. – SLaks
Атрибуты связаны с элементом кода, а не с представлением во время выполнения этого элемента кода. (btw, TypeDescriptor имеет метод GetAttributes, но он все еще основан на типе, а не на экземпляре) – SWeko