我有两个公开相同类型的网络服务。
WebService1{
public MyData Retrive(int id){...}
}
WebService2{
public void Save(MyData x){...}
}
我使用这两项服务,如:
var x=client1.Retrieve(3);
client2.Save(x);
问题:x的类型为WebService1Client.MyData; 保存类型为WebService2Client.MyData;
的xMyData是同一类型,由2个webservices公开。我不能把两种方法放在同一个服务器上。我该怎么办?
答案 0 :(得分:1)
在单独的类库中定义MyData
,然后由两个Web服务引用。还要在客户端中引用此共享库,并在添加服务引用时,确保选中了重用现有类型的选项。然后,两个WCF服务的两端将使用完全相同的类型。
答案 1 :(得分:1)
您可以在另一个程序集,类库中声明您的类MyData,并从Web服务以及调用这些服务的客户端代码引用该程序集。
您还可以考虑正确的继承,并将MyData作为基类的派生类,以防这对您有所帮助,那么您的服务只能与基类一起使用。
事实上,WCF对此有很多帮助,因为它引入了DataContract的概念,在这种情况下你应该正确使用它。