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 に答える