从WCF服务获取数据,都应使用强类型DTO和XML

时间:2019-04-08 07:27:26

标签: wcf

我有一些WCF应用程序的系统-A,B,C,D,E。 App A向B发送消息,B查看传入数据的子集,并可能决定从C和D获取其他信息,然后将所有数据发送给E。 因此,B只关心来自A的一小部分数据,而在C和D中则更小,但是它需要将所有数据发送给E。

现在当A,C或D更改其合同时,即使在B不在乎的部分中,我仍然必须更新B中的DTO (我使用Visual Studio生成的DTO以及客户端代理)并发布新版本,因为我基本上从一个生成的DTO中获取数据并将其从Es合同映射到DTO。

当B只是邮递员的部分发生变更时,我如何让服务B不在乎A,C和D的合同变更?


我们认为E可以接受具有“源应用程序”和“ XML中完整的源响应数据”之类的属性的对象数组。但是我甚至更喜欢这项服务来声明其合同方式更强大。要使其声明期望的实际数据。

源A,C和D可以声明返回Xml和B的方法,然后解析其关心的部分,然后将其全部发送给E。如上所述,我觉得必须有更好的方法。

我想使每个服务的合同尽可能牢固-不要将返回类型声明为XML甚至是字符串(包含序列化为xml的结果),然后将其解析为B以便B关心的B整个传递。


我想我可以以某种方式将传入的DTO序列化为xml,包括扩展数据,这将带来所有添加的数据。但是经过一番搜索之后,我不确定那是走的路。在ExtensionData属性上缺少公共方法并不能说明它的可用性。

0 个答案:

没有答案