【发布时间】:2013-01-08 12:59:47
【问题描述】:
我有一个自定义数据类型,我放入了类库 SharedTypes
namespace SharedTypes
{
public class District
{
public long Id { get; set; }
public string Name { get; set; }
}
}
然后我有一个带有此服务的 WCF 服务器
using System.ServiceModel;
using SharedTypes;
namespace WCF.WCFInterfaces
{
[ServiceContract]
public interface IWcfService
{
[OperationContract]
District GetDistrict(long id);
[OperationContract]
void CreateDistrict(District district);
[OperationContract]
List<District> GetDistricts();
}
}
在客户端我有一个接口(所以我注入了实现)
using SharedTypes;
namespace WcfInterfaces
{
public interface IDistrictManager
{
void CreateDistrict(District district);
District GetDistrict(long id);
List<District> GetDistricts();
}
}
我终于有了客户应该使用的实现
public class DistrictManager : IDistrictManager
{
private readonly WcfServiceClient _salesService;
public DistrictManager()
{
_salesService = new WcfServiceClient();
}
public void CreateDistrict(District district)
{
_salesService.CreateDistrictAsync(district);
}
public District GetDistrict(long id)
{
return _salesService.GetDistrict(id);
}
public List<District> GetDistricts()
{
var list = _salesService.GetDistricts();
return list.ToList();
}
}
但是问题出现了,这个实现需要使用它从服务参考中获得的 District 版本
WcfClientLibrary.SalesService.District
代替
SharedTypes.District
它们是一样的,但是 VS 不知道
所以我收到接口未正确实现的错误,因为我有 2 种不同类型的 District 类。
如何获取服务引用以使用 SharedTypes.District 代替?还是我的实现方式有问题?
【问题讨论】: