ライブラリ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を使用するためのサービス参照を取得するにはどうすればよいですか?それとも、それを実装する私の方法はかなり遠いですか?