【发布时间】:2023-03-19 01:25:01
【问题描述】:
在设计用于序列化的 DataContracts 时,我一直很困惑。
假设我有一个对象(例如 Customer),它公开了一个集合属性(例如一个名为 Addresses 的 AddressCollection)。框架设计指南规定我不应该公开该属性的公共 mutator,即集合属性应该有一个 get 和没有 set,而是一个公共 set 方法(public void SetAddresses(IEnumerable 但是,如果我想序列化该对象,并且我预计我将处于部分信任环境中,我是否必须向该属性添加一个公共设置器,以便它可以正确反序列化? 此外,如果在序列化时集合中没有任何内容,并且由于 DataContractSerializer 没有调用默认构造函数,我很确定该集合根本没有设置并且保留为空。我可以使用 OnSerializing 属性来初始化集合,但是 that 方法在部分信任的情况下也必须是公共的,不是吗?这更难看。 有人知道这里的适当指导吗? 非常感谢。
【问题讨论】:
标签: .net wcf serialization datacontract partial-trust