例如,我有两个托管在IIS中的服务。两个具有不同合同但业务对象相同的WCF服务
[ServiceContract]
public interface IDeviceService
{
[OperationContract]
DeviceCollection GetAllDevices(Customer customer);
}
[ServiceContract]
public interface IUserService
{
[OperationContract]
User Authenticate(string username, string password);
}
无论是从UserService的身份验证操作返回与用户对象是从DeviceService的GetAllDevices操作返回的DeviceCollection有客户的子对象的定义。 Customer是业务对象与User和Device对象位于同一个程序集中。
我的问题是在客户端上 - 当我打电话的设备操作
userProxy.GetAllDevices(user.Customer);
编译器与以下消息抱怨:
参数1 - 无法从UserService.Customer转换为DeviceService.Customer
我可以连接到这两个服务罚款,这是客户的对象定义是这个问题。我并不想将这些运营部门放在与他们自己的服务自然生活相同的服务中。我想我问的是如何让其他程序员处理这样的问题?
干杯, 斯图尔特
此外,添加服务引用时,您想使用“高级”选项卡指定应共享哪些类型。 – 2009-06-23 15:37:27
Hiya,两种服务相结合的问题是他们最终会变得庞大。我在Jual Lowrys的书中读到过,你应该努力不要再让这12个服务合同成员? – Simian 2009-06-23 16:03:38
@Stuart - 我不会仅仅因为这个原因而推荐合并服务。我相信你的服务是有目的地分开的,所以把他们聚集在一起并不总是合情合理的。我只是想确保你知道每一个选项。 – 2009-06-23 16:09:36