我们这里有一个框架(类库),它在数据库(CRUD)中具有普通操作。我们还在WCF中开发了两个服务来共享其中的一些方法。我们选择让每个服务托管一个单独的Windows服务。这样做我们的infra人只能停止一项服务而不接触另一项服务。
服务上存在实际引用这两个问题的问题(我们称之为“客户端”)。现在我在每个引用上都有相同的类,我添加到“客户端”但是我不能发送和从一个WCF服务收到的对象到另一个,因为对于“客户端”,它们是两个不同的对象。
请看一下this image也许它会清除这些内容。
我无法从Service1获取Person并将其发送回Service2(编译错误)。我是否必须使用反射或其他东西?
答案 0 :(得分:0)
您至少有两个不错的选择:
如果您想坚持使用当前设置,可以使用AutoMapper之类的工具来帮助您轻松地将所有属性值从一个Person
类复制到另一个类 - 它会这样做通过匹配他们名字上的属性,它就像一个魅力,真的!
另一种选择是在一个单独的程序集中共享共性 - 服务和数据契约 - 以便您的服务以及客户端如何使用和引用相同的通用程序集。这样,您可以避免客户端创建两个单独的新类型 - 两个客户端都将重用现有的,共同的,共享程序集的Person
类型,因此不需要转换/自动映射 - 类型对于两个客户都是一样的。
只要您控制通信的两端(服务和客户端),这两种都是基于.NET的应用程序(我认为对您来说就是这样,对吧?)