WCF代理类型与WCF服务类型位于不同的命名空间中

时间:2009-07-22 13:03:52

标签: wcf namespaces

我正在通过WCF调用服务,并遇到了不匹配的命名空间问题。

通过服务发送的对象位于命名空间MyProject.Commons.BuisnessObjects中,我已通过WcfTestClient验证了这一点。

当我在服务上调用客户端方法时(在使用新的MyServiceClient()启动后),该方法为我提供了正确的对象,但具有不同的命名空间。

该对象现在是Web.MyService.Object。我尝试过施法,但这没有帮助。

之前见过这个的人?

谢谢,Tine

3 个答案:

答案 0 :(得分:1)

这是预期的行为。这就是Web Services的工作方式。它们的意思不同。

答案 1 :(得分:1)

如果您添加了服务引用(即WCF)而不是旧的Web引用,那么您可以匹配这些引用。在添加服务引用之前,向客户端添加对定义对象类型的共享库的引用,然后在添加对重用类型的引用时有一个选项。

答案 2 :(得分:1)

这是因为您的类型不是跨服务和客户端共享的。因此,客户端会在Web.MyService名称空间中为您重新创建数据结构。

为避免这种情况,您应该在添加服务引用之前引用包含类型的程序集,在客户端和服务之间共享数据结构类型

您可以在那里找到详细的方案和示例项目:

http://blog.walteralmeida.com/2010/08/wcf-tips-and-tricks-share-types-between-server-and-client.html