有时可以在.NET中使用DataContractSerializer来使用EmitDefaultValue吗?

时间:2012-03-15 17:45:04

标签: .net wcf serialization

有没有办法在运行时为.NET中的DataContractSerializer有条件地指定EmitDefaultValue?有没有解决方法?

例如,我很好奇是否可以将EmitDefaultValue = false用于WCF序列化,但我希望能够为外部接口生成的XML使用EmitDefaultValue = true,例如print。

1 个答案:

答案 0 :(得分:1)

嗯,您可能有两个选项是使用data contract surrogateIObjectReference。我认为这些对你来说都是过度的,但是如果你真的,真的想支持你的这种情况,也许这是你愿意做出的牺牲。请注意,使用它们对性能,互操作性,模式暴露等也有重要意义。

我还想指出,即使我知道共同的动机是什么,但由于多种原因,我不建议您尝试做的事情 - 假的EmitDefaultValue。见Why is using [DataMember(EmitDefaultValue = false)] not recommended?