たとえば、IISでホストされている2つのサービスがあります。
[ServiceContract]
public interface IDeviceService
{
[OperationContract]
DeviceCollection GetAllDevices(Customer customer);
}
[ServiceContract]
public interface IUserService
{
[OperationContract]
User Authenticate(string username, string password);
}
UserServiceのAuthenticate操作から返されるUserオブジェクトと、DeviceServiceのGetAllDevices操作から返されるDeviceCollectionの両方に、Customerの子オブジェクト定義があります。顧客はビジネスオブジェクトであり、ユーザーおよびデバイスオブジェクトと同じアセンブリにあります。
私の問題はクライアントにあります-デバイス操作を呼び出すとき
userProxy.GetAllDevices(user.Customer);
コンパイラは次のメッセージで文句を言います:
引数1-UserService.CustomerからDeviceService.Customerに変換できません
両方のサービスに正常に接続できます。問題はCustomerのオブジェクト定義です。彼らが彼ら自身のサービスで自然に生きているように見えるので、私は実際にオペレーションを同じサービスに入れたくありません。私が求めているのは、他のプログラマーがそのような問題にどのように対処するかということだと思います。
乾杯、スチュアート