我尝试在某个对象上添加属性。这个对象可以是 int、string、List 或其他。
我尝试使用
TypeDescriptor.AddAttributes(object, attrList.ToArray());
但是当我这样做时,这个属性列表不会显示:
object.GetType().GetCustomAttributes(false)
怎么会?
最好的祝福,
加布里埃尔·保尔森
我尝试在某个对象上添加属性。这个对象可以是 int、string、List 或其他。
我尝试使用
TypeDescriptor.AddAttributes(object, attrList.ToArray());
但是当我这样做时,这个属性列表不会显示:
object.GetType().GetCustomAttributes(false)
怎么会?
最好的祝福,
加布里埃尔·保尔森
不幸的是,此方法不会动态更改类型的元数据,最终它只会为您返回一个包含您添加的属性的TypeDescriptor 。
您需要保留 AddAttributes 方法的返回值并从那里查询...
var myObject = { ... }
var typeDescriptionProvider = TypeDescriptor.AddAttributes(myObject, attrList.ToArray());
var attributes = typeDescriptionProvider.GetTypeDescriptor(myObject).GetAttributes();
您可以将类型描述符视为类型元数据本身(固定)和您在运行时添加的任何元数据(动态)的联合。