繁体   English   中英

在客户端和服务器wcf服务上使用自定义数据类型

[英]Usage of custom data types on client and server wcf service

我有一个自定义数据类型我放在类Library 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();
    }
}

但是这里出现了问题,这个实现期望使用它从服务引用中获取的版本的区域

WcfClientLibrary.SalesService.District

代替

SharedTypes.District

他们是一样的,但VS不知道

所以我得到的错误是接口没有正确实现,因为我有2种不同类型的District类。

如何获取Service引用以使用SharedTypes.District? 或者是我实现它的方式是什么?

右键单击客户端项目中的 服务引用 ,然后选中“重用参考程序集中的类型”。

确保已将SharedTypes.District添加到客户端服务引用项目中。

在客户端添加WCF引用时。 单击高级选项。 您可以指定一个设置,以指示它重用指定程序集中的类型。 您将能够指定程序集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM