我想在C#中创建一个泛型类,并根据构造函数中使用的泛型类型参数,通过动态定义其[DataContract]
和[DataMember]
属性来控制它的序列化方式。
有没有办法这样做?我们可以使用泛型类构造函数中的反射在运行时定义这些属性吗?
答案 0 :(得分:3)
不,这是不可能的。属性在编译时静态声明,不能在运行时引入。它们是程序集元数据的一部分。
附注:在纯自定义方案中,您可以控制属性的使用者,可以创建自定义属性存储库,而不是直接使用反射。但是,DataContractSerializer
不是这种情况。