3

我尝试在某个对象上添加属性。这个对象可以是 int、string、List 或其他。

我尝试使用

TypeDescriptor.AddAttributes(object, attrList.ToArray());

但是当我这样做时,这个属性列表不会显示:

object.GetType().GetCustomAttributes(false)

怎么会?

最好的祝福,

加布里埃尔·保尔森

4

1 回答 1

6

不幸的是,此方法不会动态更改类型的元数据,最终它只会为您返回一个包含您添加的属性的TypeDescriptor 。

您需要保留 AddAttributes 方法的返回值并从那里查询...

var myObject = { ... }

var typeDescriptionProvider = TypeDescriptor.AddAttributes(myObject, attrList.ToArray());

var attributes = typeDescriptionProvider.GetTypeDescriptor(myObject).GetAttributes();

您可以将类型描述符视为类型元数据本身(固定)和您在运行时添加的任何元数据(动态)的联合。

于 2012-04-13T09:23:28.937 回答