0

我们有一个 Web 服务,它使用从 WSDL 生成的消息和操作合同的代码生成文件。请求从序列化的 XML 中删除所有格式(空格、缩进)。我知道以下设置:

settings.NewLineHandling = NewLineHandling.None;
settings.Indent = false;

我可以使用<System.Xml.Serialization>config 元素在 Web.Config 中应用这些吗?所有的序列化都发生在幕后,所以我想知道我是否可以从配置文件中控制格式,因为我们不直接调用 serialize 方法。

或者我是否必须应用这些设置来实现自定义 xml 序列化程序?

4

1 回答 1

0

这是我给出的答案:

发出的 XML 和代码看起来都很好。因为消息的类文件是自动生成的,所以会自动处理序列化。您可以重新编写代码以手动完成此部分,但这会给代码增加不必要的复杂性。

一些选项:

手动序列化。

当您直接调用序列化时,可以选择关闭某些格式。我不推荐这种方法,因为其他开发人员会想知道为什么要这样做。

打开 HTTP 压缩。

http://en.wikipedia.org/wiki/HTTP_compression

压缩消息时,空格无关紧要。无论如何我都会推荐这个,因为你的消息是 40-70 兆(相当大)。

使用 JSON

与相同的 XML 消息相比,JSON 的有效负载要小得多。由于您的消息有很多标签,因此即使在压缩之前,大小的下降也应该很明显。

于 2013-06-25T19:21:06.717 回答