我有 2 个 WCF 服务公开相同的对象。假设第一个服务(SerA)公开了一个类(classA),第二个服务(SerB)添加了填充的classA也公开了这个类(因为这个类包含在参数中)现在当我从SerA检索classA时,它与命名空间 SerA.classA 连接,当我使用第二个服务添加它时,它需要一个像 SerB.ClassA 这样的类。有没有办法指定两个类是相同的。我尝试更改 reference.vb 中的命名空间并且它可以工作,但是当更新服务引用时这将是真正的问题。谁能帮我解决这个问题?谢谢
问问题
472 次
2 回答
2
您可以将您的ClassA
(和其他数据协定)定义放入类库并从两个服务中引用它。这样,两者都应该使用相同的DataContracts.ClassA
定义。
将您的服务内容分离到单独的项目中总是一个好主意:
- 服务(服务、操作、数据和可能的消息合同)到一个类库(“合同”)中 - 甚至可能到多个库中
- 服务实现到类库中
- 服务主机 - 如果需要(不使用 IIS) - 进入单独的程序集(控制台应用程序)
这样,您也可以重用服务合同的某些部分以及可能的实现。
马克
于 2009-10-22T13:24:31.670 回答
0
没有答案,嗯?
问题是服务引用生成自己的类定义..
例如,我在公共库中有一个“汽车”类,以及我从ClientProject使用的service1 wcf 服务,但是当我添加对 service1 的引用时,你会得到
ClientProject.Service1_ref.Car
在Reference.cs中创建
现在我不得不通过修改reference.cs来解决这个问题,每次都使用公共类,真的不好。
编辑: 这家伙有答案,不要使用“添加服务参考”,否则很容易做到:http://devx.com/codemag/Article/39837/1763/page/5 – Monsters X 0 秒前编辑
于 2011-03-31T17:29:34.463 回答