WCF是由两个Web服务公开的相同类型

时间:2011-02-21 21:41:20

标签: c# wcf

我有两个公开相同类型的网络服务。

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;

的x

MyData是同一类型,由2个webservices公开。我不能把两种方法放在同一个服务器上。我该怎么办?

2 个答案:

答案 0 :(得分:1)

在单独的类库中定义MyData,然后由两个Web服务引用。还要在客户端中引用此共享库,并在添加服务引用时,确保选中了重用现有类型的选项。然后,两个WCF服务的两端将使用完全相同的类型。

答案 1 :(得分:1)

您可以在另一个程序集,类库中声明您的类MyData,并从Web服务以及调用这些服务的客户端代码引用该程序集。

您还可以考虑正确的继承,并将MyData作为基类的派生类,以防这对您有所帮助,那么您的服务只能与基类一起使用。

事实上,WCF对此有很多帮助,因为它引入了DataContract的概念,在这种情况下你应该正确使用它。