代码之家  ›  专栏  ›  技术社区  ›  Rob Cooper

大型复杂对象作为Web服务的结果[关闭]

  •  15
  • Rob Cooper  · 技术社区  · 17 年前

    女士们,先生们,大家好!

    好的,接着我的另一个问题 ASP.NET Web Service Results, Proxy Classes and Type Conversion 我在项目中遇到了一个需要限制思考的部分。

    基本上,我们有一个庞大而复杂的自定义对象,需要从Web服务返回并在客户端应用程序中使用。

    现在,根据前面的讨论,我们知道这将以代理类的形式作为返回类型。为了克服这个问题,我们基本上需要将属性从一个复制到另一个。

    在这种情况下,我真的,真的, 真正地! 喜欢避免!

    所以,这让我想到, 我们还能怎么做?

    我目前的想法是使对象能够完全序列化为XML,然后从Web服务以字符串形式返回XML。然后,我们在客户端反序列化。这将意味着相当多的属性装饰,但至少两个端点的代码都很轻,即只使用。NET XML序列化程序。

    你对此有何看法?

    4 回复  |  直到 5 年前
        1
  •  5
  •   Cheekysoft Moz Morris    17 年前

    这个。Net-XML(去)序列化实现得很好。乍一看,我认为这根本不是一个坏主意。

    如果这两个应用程序导入相同的C#类定义,那么这是一种相对不错的免费获取复制构造函数行为的方法。如果类结构发生了变化,那么当双方都得到新的类定义时,一切都会正常工作,而不需要在web服务消费/构建方面进行任何额外的更改。

    对XML进行编组和解编组时会有轻微的开销,但这可能会被远程web服务调用的开销所抵消。 .Net-XML序列化被大多数程序员很好地理解,应该会产生一个易于维护的解决方案。

        2
  •  4
  •   Mohammad Faisal Reza    10 年前

    我爱你 JSON 对于这种事情。我刚刚为我的公司完成了一个POC投递类门户,使用 jQuery 联系启用了脚本服务的web服务。消息是轻量级的,解析等几乎都可以处理。这个 jQuery ajax 我读过的东西在这里(喜欢!): jquery ajax article

        3
  •  1
  •   Community Mohan Dere    8 年前

    昨天我对一个非常相似的话题有一些很好的答案,可能对你有用:

    Communication between javascript and the server

        4
  •  1
  •   Peter Meyer    17 年前

    Rob,看看你的另一个问题和这个问题,这听起来就像我们环境中的确切情况。然而,我们所做的是远离ASP。从Net web服务到WCF web服务,在很大程度上解决了这个问题。

    如果您的web服务有可能实现为WCF web服务,这也可能对您有效。我应该提到的是,与此同时,我们通过使用WCF basichttp绑定进行服务传输,保持了与一些需要“ASP.Net web服务风格”实现的客户端应用程序的向后兼容性。最终的结果是,我们的“较新”客户端应用程序能够使用我们的真实业务对象(通过引用仅包含这些共享对象的程序集)作为web服务调用的返回类型,因为它们进行了实际的WCF调用。

    我们通过不使用自动生成的代理类并构建自己的客户端通道来与WCF服务通信来实现这一点。

    如果你能使用WCF,请告诉我我可以发布一些其他信息。