例如,我有两个托管在 IIS 中的服务。
[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
我可以很好地连接到这两个服务,问题在于客户的对象定义。我真的不想将运营放在同一个服务中,因为他们似乎自然地生活在自己的服务中。我想我要问的是其他程序员如何处理这样的问题?
干杯,
斯图尔特
如果您想在多个服务之间共享数据协定,那么您必须将相关数据协定编译为其自己的程序集,然后将该程序集分发给客户端。
即使类型appears同样,它实际上是两种不同的类型,这就是您看到所看到的错误的原因。您唯一的其他选择(除了单独的共享程序集之外)是将这两个服务合并为一个,以便它们可以共享数据协定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)