WCF数据合同和底层数据结构[英] WCF DataContracts and underlying data structures

本文是小编为大家收集整理的关于WCF数据合同和底层数据结构的处理方法,想解了WCF数据合同和底层数据结构的问题怎么解决?WCF数据合同和底层数据结构问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想知道通过 WCF 服务公开哪些对象有什么意义 - 我应该将 WCF 序列化规范添加到我的业务实体,还是应该实现一个转换器,将我的业务实体映射到我想要公开的 DataContract通过我的 WCF 服务?

现在我有不同级别的实体:DataAccess、Business 和 Contract.我有转换器可以将实体从 DataAccess 映射到 Business,从 Business 映射到 Contract,反之亦然.实施和维护这些非常耗时且非常乏味.与此相关的最佳实践是什么?

如果我使用的是 NHibernate 或实体框架等 OR/M,我应该直接从 ORM 中公开实体,还是应该像现在一样抽象它们?

推荐答案

总的来说,我认为从最佳实践的角度来看,您不应该将业务对象的结构公开为数据契约,而是定义"特定于数据契约" 类并将业务转换为合同.它可能需要额外的工作,但从关注点分离和保护变化的角度来看,额外的工作可能是值得的.

微软模式 &实践"服务工厂建模版" 实现了这一点,还提供了自动生成业务 <=> 合同转换器类的工具——它是一个出色的 VS 插件,也代表了 Microsoft 的 WCF 最佳实践.

本文地址:https://www.itbaoku.cn/post/1793946.html