【发布时间】:2009-05-07 08:23:17
【问题描述】:
我正在使用 DataContractSerializer 将标有 DataMember 属性的对象属性和字段序列化为 xml。
现在同一个类有另一个用例,我需要序列化其他属性和其他字段。
有没有办法添加可用于我的其他序列化场景的“另一个 DataMemberAttribute”?
【问题讨论】:
-
可以说,如果你需要序列化不同的属性和字段,那它实际上不是同一个类。
-
我不同意。如果同一个类实现多个接口,某些数据元素可能只与其中一个接口相关。
-
接口是一组行为。被序列化的是状态。如果你有两组状态,那么你就有两个类。
-
@John Saunders:是的,我跟着你,但它是相同的状态被序列化了两次,但具有两个不同的“安全级别”,因此在某些用例中限制了消费者使用某些数据.更具体地说,这是一个业务对象,在某些情况下需要使用它对其他业务对象的引用进行序列化,而在其他情况下则不需要。
-
您是否考虑过教您的对象了解安全级别?这样,当您读取间隙不足的属性时,对象可能会返回 null/0/empty 值。