我正在构建一组WCF服务,它们共享公共数据契约(如果您愿意,也可以是实体)。这些是用DataContract和DataMember属性修饰的简单数据传输对象。我显式地指定了名称和命名空间。为了遵循IDesign推荐的每个服务合同平均有12个成员的原则,我将我的服务项目分解为多个服务。
我的数据契约位于一个单独的程序集中,如果客户使用.Net,我可以将其提供给客户。他们可以告诉他们的服务引用重用引用的程序集中的类型。然而,如果他们没有使用.net,并且他们使用了两个使用相同实体的服务,那么我假设他们会得到一个模棱两可的引用消息。如果我不引用数据契约dll,我可以在Visual Studio中看到这一点。
我的问题是,我可以在我的服务中做些什么,或者他们可以在客户端应用程序中做些什么,以避免必须限定数据契约来自哪个代理?
发布于 2010-08-28 15:11:49
一篇很好的文章,描述了如何解决这个问题。Sharing DataContracts between WCF Services
发布于 2010-02-24 23:54:44
我还倾向于将我所有的数据契约放在一个程序集中,这个程序集被多个服务和大量的客户端应用程序引用,这很好用,但我从未尝试在.NET之外使用该服务。
了解他们使用.NET以外的其他技术来使用服务可能会有所帮助。什么是抛出模棱两可的引用消息?
发布于 2010-02-25 01:59:44
我碰巧有多个服务在我这一端共享对象。我不确定你为什么会有这个问题。在我的例子中,我能够以这种方式访问对象。。。。
新客户端= SERVICE1 SERVICE1()
client.CommonLibrary.Address。。。
新的client2 = SERVICE2 SERVICE2()
client2.CommonLibrary.Address。。。。
https://stackoverflow.com/questions/2327137
复制相似问题