14

女士们,先生们,你们好!

好的,继续我关于ASP.NET Web Service Results, Proxy Classes and Type Conversion的其他问题。我已经进入了我的项目的一部分,我需要让我的思考上限。

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

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

在这种情况下,那是我真的,​​真的,真的!喜欢避免!

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

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

您对此有何看法?

4

4 回答 4

5

.Net XML(反)序列化非常好地实现。乍一看,我认为这根本不是一个坏主意。

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

编组和解组 XML 的开销很小,但这可能与远程 Web 服务调用的开销相比相形见绌。.Net XML 序列化被大多数程序员很好地理解,并且应该产生一个易于维护的解决方案。

于 2008-08-20T11:12:00.193 回答
4

我很喜欢JSON这种东西。我刚刚为我的公司完成了一个 POC drop-things 类型的门户,用于jQuery联系启用了脚本服务的 Web 服务。消息是轻量级的,解析等几乎可以处理。jQuery ajax我读到的东西在这里(喜欢它!): jquery ajax 文章

于 2008-08-20T11:36:35.017 回答
1

昨天我在一个非常相似的主题上得到了一些很好的答案,可能对你有用:

javascript和服务器之间的通信

于 2008-08-20T10:50:15.363 回答
1

Rob,在查看您的另一个问题以及这个问题时,这听起来就像我们在环境中的确切情况。然而,我们所做的是从 ASP.Net Web 服务转移到 WCF Web 服务,并且在这个过程中(大部分)解决了这个问题。

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

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

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

于 2008-08-20T12:53:33.803 回答