Web Service生成的代码:控制序列化的XML,没有不必要的空格和换行符?

时间:2013-06-21 21:42:03

标签: c# web-services web-config xmlserializer

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

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

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

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

1 个答案:

答案 0 :(得分:0)

这是我给出的答案:

发出的XML看起来很好,代码也很好。由于消息的类文件是自动生成的,因此会自动执行序列化。您可以重新编写代码以手动执行此部分,但这会为代码添加不必要的复杂性。

一些选项:

手动序列化。

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

启用HTTP压缩。

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

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

使用JSON

与同一XML消息相比,JSON的有效负载小得多。由于您的邮件包含大量标记,因此即使在压缩之前,大小下降也应该很大。