csa*_*ano 3 c# domain-driven-design ixmlserializable
我正在构建一个以XML格式公开数据的REST API.我的域层中有一大堆域类,供API背后的服务层和我们将提供给客户的客户端API使用.(客户可以选择直接与REST API交互,但客户端API简化了事情).我希望保持我的域类清除任何数据持久性逻辑,但我试图弄清楚域类是否可以实现IXmlSerializable以帮助简化序列化通过和检索的数据的过程. API.我开始认为我保持域类没有任何序列化逻辑,而是用序列化行为装饰它们,例如将域对象包装在处理序列化的对象中.我的事情比他们需要的更复杂吗?有关如何处理此问题的任何想法?谢谢!
域类应该只关注业务逻辑,而不是持久性或序列化.
您应该创建一组数据传输对象(DTO)类,每个类对应一个域类.这些类只包含您决定公开的域类的属性.这允许域类具有不通过持久性或序列化层公开的属性.
只有DTO对象才会被序列化和反序列化.
然后,您可以发现创建静态"翻译"方法以在域和DTO对象之间进行转换很方便.