我创建了3个项目:类库(以下两个引用),Web服务和客户端应用程序。在客户端应用程序中,尝试从Web服务获取“共享类型”的对象时,出现错误Cannot implicitly convert type 'ClientProject.ServiceProject.AB' to 'Classlibrary.AB'
。我以为这是我使用DataContract时遇到的问题,但是我尝试了几种方法,但结果仍然相同。您能给我一些指示,我该怎么做错了?
Class库AB类:
using System;
using System.Runtime.Serialization;
namespace Classlibrary
{
[Serializable]
[DataContract(Name = "AB",Namespace = "Classlibrary")]
public class AB
{
[DataMember(Name = "a")]
private int a;
[DataMember(Name = "b")]
private byte[] b;
<some_more_methods_here>
}
}
Web服务方法:
using Classlibrary;
[...]
[WebMethod]
public AB calledMethod(byte[] x)
{
int a = [...]
byte[] b = [...]
AB ab = new AB(a,b);
return ab;
}
失败的客户端代码:
using Classlibrary;
[...]
byte[] x = [...]
var serviceProjectsoapClient = new ServiceProject.ServiceProjectsoapClient();
AB ab = new AB();
ab = serviceProjectsoapClient.calledMethod(x);
编辑:
由于我是使用共享项目还是使用类库,对此有一些疑问。
我尝试了以下操作:1)创建“类库”项目; 2)建造它; 3)在服务器和客户端应用程序中都引用了* .dll(都指向相同位置的完全相同的* .dll文件,当我检查两个项目中的类型时,它们在元数据中都显示完全相同)。