在Reflection.Emitting时引用现有属性
本文关键字:属性 引用 Reflection Emitting | 更新日期: 2023-09-27 18:13:44
所以在这里我试图使用System.Reflection.Emit
从现有的类生成一个新的类。基本上,我想从这个现有类中获取所有公共属性和字段,并将它们拍打到我的新动态创建的类中。到目前为止还不错,但现在现有类的一些字段正在用System.Xml.Serialization
汇编中定义的属性进行装饰,我非常想在我的新字段上也有。
然而,我不确定我应该如何进行。我想我应该在我的FieldBuilder
实例上调用SetCustomAttribute
,但是这个方法需要一个CustomAttributeBuilder
,我不知道如何正确地实例化它,让它引用真实属性……此外,我还希望在我的新类中保留现有的属性参数。
tl;dr只是试图将属性从现有的类复制到通过Reflection.Emit
创建的新类。
您可以使用CustomAttributeBuilder
的一个构造函数来实例化该类。
使用MemberInfo.GetCustomAttributesData
来检索关于现有自定义属性的元数据。与MemberInfo.GetCustomAttributes
相反,这个API不实例化属性类。相反,它返回原始元数据。