我们有Flex应用程序连接到我们的ASP.NET 3.5 Web应用程序,并且通常下载大量数据。现在考虑将XML作为传输,对于每个项目,它会传输元数据两次,例如..而不是传递int值<Customer CustomerID=23/>
它传输<Customer><CustomerID>23</CustomerID></Customer>
..现在这里带宽保护成为一个问题。< / p>
WSCompression
但它现在需要WSE 3.0我怀疑在我的托管环境中引入了太多的依赖,这需要太多的管理和开销。 WSE 3.0只是dll库,不需要在生产服务器上安装吗?是否需要重写所有WebService
属性?或者是简单的一次性配置,或多或少,任何人都知道它与Flex一起工作? 我能想到的最简单的解决方案是,减少不必要的XML标记并将其减少到属性以节省带宽。有没有一种简单的方法来实现它,我们的类有超过50-70属性,我知道为每个属性添加属性将是噩梦,但我们不知道如何在SOAP的情况下这样做。
问题:
什么是WSE 3.0,是否需要在生产服务器上安装?要启用WSCompression,我们是否需要在Web服务代码中集成其他代码,例如每个WebMethod属性,我们是否需要在属性中添加更多代码?
是否有一种简单的方法来标记属性和强制序列化的简单形式,如[SoapAttribute],它将数据转换为属性而不是标记,它是否可以与FLEX一起使用,还是可以与任何客户端一起使用?< / p>
SOAP是否只有元素的标准格式,还是可以支持属性?
答案 0 :(得分:1)
最后,我通过使用XmlAttribute
找到了解决方法[XmlAttribute]
public long CustomerID;
强制字段被序列化为“属性”,但SoapAttribute的MSDN文档说“将SoapAttributeAttribute应用于公共字段以指定XmlSerializer将字段序列化为XML属性”。并且根据SOAP标准,它应该这样做,但它不会!!
答案 1 :(得分:0)
SOAP支持属性和元素。