【发布时间】:2017-04-26 16:00:50
【问题描述】:
我有一个对象 A 和属性 Name,我在 WCF 中使用它来传输模型(通信)。
[DataMember(IsRequired = false, EmitDefaultValue = false, Name = "p0", Order = 0)]
public string Name { get; set; }
我发现当Name 以空格“123”开头时,在另一侧反序列化后,它丢失了空格,变成了“123”。
WCF 服务使用 MTOM 消息编码。
这对于 xml 或 wcf 来说是一种已知的影响吗?
在提供的答案的帮助下,我发现由于 Mtom 编码,前导空格被删除。事实上,当我删除 Mtom 时,前导空格会正确传输。
安全配置在我的场景中没有发挥任何作用。
有什么办法可以避免吗?
【问题讨论】:
-
您必须对名称进行 XML 编码。 stackoverflow.com/questions/1091945/…
-
从来没有听说过这样的事情,如果这不是一个错误的话,会感到震惊。客户端和服务器实际上都是使用 WCF 的 .NET 吗?
-
@KevinRaffay 当然不是。 (Net)DataContractSerializer ("WCF") 会为你做这件事。
-
你使用 XmlSerializer 吗?默认情况下,WCF 使用 DataContractSerializer。