可能重复:
WCF 和客户端应用程序中的不明确引用
我在 WCF 中使用程序集“X”中的几个类,而我的客户端代码使用相同的程序集来引用其他类集。这使得有必要在客户端应用程序中保留对程序集“X”的引用。
这导致了冲突,因为我在客户端获得的代理将程序集“X”中的类保留在不同的命名空间下。
请提出任何解决方案。
可能重复:
WCF 和客户端应用程序中的不明确引用
我在 WCF 中使用程序集“X”中的几个类,而我的客户端代码使用相同的程序集来引用其他类集。这使得有必要在客户端应用程序中保留对程序集“X”的引用。
这导致了冲突,因为我在客户端获得的代理将程序集“X”中的类保留在不同的命名空间下。
请提出任何解决方案。
不要使用预先生成的代理。如果您在服务和使用者代码之间共享程序集,那么只需共享 WCF 合同程序集,然后ChannelFactory
在需要时使用它来创建代理。
@Ashish 你已经问过这种问题了。当客户端还需要引用代理生成的某些类时,显然您会遇到模棱两可的错误。
有两种方法可以避免这个问题。
直接在客户端中引用服务合同/数据合同程序集,而不是使用 svcutil.exe 创建代理,而是按照@hugh 的建议使用 ChannelFactory。
如果您是通过 VS 创建代理,那么您可以配置 svcutil.exe 工具不要重新创建客户端已经拥有的类,正如我在此线程中回答的那样。