我做了一個生成器類,它構建了一個基於實現接口的接口的代理類。反射發射:如何將屬性實例轉換爲CustomAttributeBuilder或CustomAttributeData
看到我的帖子在Build a Proxy class based on Interface without implementing it。
我熟悉CustomAttributeData.GetCustomAttributes(MemberInfo target)
,我在閱讀Interface的成員時使用它,併成功將它們導入代理。
我想在運行時注入附加的屬性給生成的類。 我要求屬性實例將它們注入代理。
例如:
開發人員可以通過這個作爲值:new ObsoleteAttribute("Demo", true)
,(它有一個空的構造,但屬性是隻讀),我想將其轉換爲:
return new CustomAttributeBuilder(
attribute.GetType().GetConstructor(Type[] {typeof (string), typeof (bool)}),
new object[] {"Demo", true},
new FieldInfo[0],
new object[0]);
請記住,我不知道給出了什麼。
你是問如何將屬性添加到已生成的類('Type'),或者你目前正在構建一個類('TypeBuilder') ? – svick 2013-04-09 11:15:14
我目前正在構建它 – Ofir 2013-04-09 14:53:54
對CustomAttributeBuilder構造函數重載有什麼特別困惑嗎?我會期待他們不言自明。 – kvb 2013-04-09 15:28:02