在泛型类中动态定义 DataContract 和 DataMember

本文关键字:DataContract DataMember 定义 动态 泛型类 | 更新日期: 2023-09-27 18:34:03

我想在 C# 中创建一个泛型类,并根据构造函数中使用的泛型类型参数动态定义其[DataContract][DataMember]属性来控制它的序列化方式。

有没有办法这样做?我们是否可以在运行时使用泛型类构造函数中的反射来定义这些属性?

在泛型类中动态定义 DataContract 和 DataMember

不,这是不可能的。属性在编译时静态声明,不能在运行时引入。它们是程序集元数据的一部分。

旁注:在纯自定义方案中,您可以控制属性的使用者,可以创建自定义属性存储库,而不是直接使用反射。但是,情况并非如此 DataContractSerializer .