2012-04-13 53 views
3

我嘗試在某個對象上添加屬性。這個對象可以是int,string,List或其他。在運行期間未發生對象添加屬性

我嘗試使用

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

但這個屬性列表不顯示,當我做:

object.GetType().GetCustomAttributes(false)

怎麼來的?

最好的問候,

加布裏埃爾三位的

回答

6

不幸的是這種方法不動態改變類型的元數據,最終也只給你回TypeDescriptor包括您添加的屬性。

你需要保持從那裏,而不是AddAttributes方法的返回值和查詢......

var myObject = { ... } 

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

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

你能想到的類型描述符作爲類型元數據本身(固定)的聯合,您在運行時添加的任何元數據(動態)。

+0

天哪,我剛剛失去了2到3小時試圖動態添加AspNetCompatibilityRequirementsAttribute,這是我的最後一次鏡頭。 – 2012-10-04 20:51:16