我们有一个Web服务,它使用代码基因文件来处理从WSDL生成的消息和操作合同。请求从序列化的XML中删除所有格式(空格,缩进)。我知道以下设置:
settings.NewLineHandling = NewLineHandling.None;
settings.Indent = false;
我可以在Web.Config中使用<System.Xml.Serialization>
配置元素应用这些吗?所有的序列化都发生在幕后,所以我想知道我是否可以从配置文件中控制格式,因为我们不直接调用serialize方法。
或者我是否必须实施自定义xml序列化程序并应用这些设置?
答案 0 :(得分:0)
这是我给出的答案:
发出的XML看起来很好,代码也很好。由于消息的类文件是自动生成的,因此会自动执行序列化。您可以重新编写代码以手动执行此部分,但这会为代码添加不必要的复杂性。
一些选项:
手动序列化。
当您直接调用序列化时,可以选择关闭某些格式。我不推荐这种方法,因为其他开发人员会想知道为什么要这样做。
启用HTTP压缩。
http://en.wikipedia.org/wiki/HTTP_compression
压缩消息时,空格无关紧要。无论如何,我会推荐这个,因为你的消息是40-70兆(相当大)。
使用JSON
与同一XML消息相比,JSON的有效负载小得多。由于您的邮件包含大量标记,因此即使在压缩之前,大小下降也应该很大。