所以在这里我试图使用System.Reflection.Emit
从现有的类中动态生成一个新类。基本上我想从现有的类中获取所有公共属性和字段,并将它们打到我新创建的动态类中。到目前为止一切顺利,但是现在来自现有类的一些字段正在使用System.Xml.Serialization
程序集中定义的属性进行修饰,我非常希望在我的新字段中也有。
但是我不确定我该怎么办。我想我应该在我的SetCustomAttribute
实例上调用FieldBuilder
,但是这个方法需要CustomAttributeBuilder
,我不知道如何正确地实例化它以使它引用true属性。此外,我还想在我的新课程中保留现有的属性参数。
tl; dr只是尝试将现有类中的属性复制到通过Reflection.Emit
创建的新类。
答案 0 :(得分:1)
您可以使用CustomAttributeBuilder
的一个构造函数来实例化该类。
使用MemberInfo.GetCustomAttributesData
检索有关现有自定义属性的元数据。与MemberInfo.GetCustomAttributes
相反,此API不会实例化属性类。相反,它会返回原始元数据。