Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF由两个web服务公开的相同类型_C#_Wcf - Fatal编程技术网

C# WCF由两个web服务公开的相同类型

C# WCF由两个web服务公开的相同类型,c#,wcf,C#,Wcf,我有两个公开相同类型的Web服务 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 MyDa

我有两个公开相同类型的Web服务

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个Web服务公开。我不能把两种方法放在同一份服务中。我该怎么办

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

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

WebService1{
    public MyData Retrive(int id){...}
}
WebService2{
    public void Save(MyData x){...}
}

您也可以考虑适当的继承,并将MyDATA作为基类的派生类,以防对您有帮助,那么您的服务只与基类一起使用。 事实上,WCF在这方面很有帮助,因为它引入了DataContract的概念,在本例中您应该正确使用它