如果我使用DataContractResolver,这是否限制我只使用.NET客户端?

时间:2014-07-09 16:36:38

标签: c# .net web-services wcf

我试图使用SharedTypeResolver,也就是来自this blog post的不太通用的DataContractResolver。

该帖子提到了SharedTypeResolver如何需要.NET,以及紧密耦合的场景,例如服务和客户端共享的程序集。

但是,我的问题是:不使用DataContractResolver AT ALL,需要.NET和共享程序集吗?如果客户端无法访问相同的程序集,客户端将如何使用解析器?

目前我所拥有的只是.NET客户端,但我不想疏远任何可能用Java编写客户的潜在客户。

2 个答案:

答案 0 :(得分:2)

这将使您的Java客户端生成代理变得更难,但并非不可能,因为您的wsdl将不包含您将通过网络发送的类型。有些工具可用于自动生成代理。显然,它们不足以生成wsdl中未描述的数据模型。必须手动创建这些数据模型。因此,它有可能是太多的努力,它永远不会完成。出于这些原因,我建议你避免它。

答案 1 :(得分:0)

除了可能命名的管道之外,在任何平台上运行的任何客户端都可以与WCF通信。这个问题是否是一种愉快的体验。

对于跨平台通信,我已经成功使用WCF绑定WebHttpBinding(REST): http://msdn.microsoft.com/en-us/magazine/dd315413.aspx

但是,如果你要走那条路,那么你就错过了WCF必须提供的东西,交易,安全性等等,并且不妨使用ASP.Net Web API。