首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有任何框架或实用程序(在.NET空间中)可用于从业务对象自动生成数据传输对象

是否有任何框架或实用程序(在.NET空间中)可用于从业务对象自动生成数据传输对象
EN

Stack Overflow用户
提问于 2010-03-10 11:26:30
回答 3查看 221关注 0票数 1

我正在寻找从业务对象(类型定义,而不是映射数据)生成数据传输对象的最佳方法,使用一组约定(例如,所有公共属性),并且可能可配置以确定深入程度。

我意识到,在很多情况下,这可能是不可能的,甚至是不可取的,因为在许多情况下,dto与业务对象并不相似(例如,将多个业务对象展平为单个数据传输对象时)。

然而,在我的例子中,我的数据传输对象中有很大一部分与它们的业务对象非常相似(特别是用于更新数据的DTO)。

我想知道是否有任何现有的代码生成工具(我正在寻找现有模板的特定解决方案,而不仅仅是像CodeSmith这样的通用代码生成工具),或者动态程序集创建工具(例如,在幕后使用反射发出)?或者,如果这是你以前做过的事情,我很有兴趣听听你用什么技术来帮助我在不同的选项之间做出选择。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-10 11:29:20

您可能会发现AutoMapper非常有用:http://www.codeplex.com/AutoMapper

编辑,作为对OP评论的响应:

T4模板包含在Visual Studio中,用于代码生成。这是一篇关于使用T4生成实体到DTO代码的帖子:

http://weblogs.asp.net/cibrax/archive/2009/03/11/code-generation-with-t4-an-entities-to-dto-example.aspx

票数 4
EN

Stack Overflow用户

发布于 2010-03-10 11:39:28

在某种程度上,.NET框架本身可以通过匿名类来实现这一点。

例如,使用Linq to Objects (例如,您的业务对象),您可以将结果集“投影”到匿名类(列表)中。

这样做的主要缺点是现在它们的可移植性不是很好,但是对于.NET 4.0和动态类,我敢说你不需要使用第三方解决方案,我估计你会有框架本身的工具。

票数 0
EN

Stack Overflow用户

发布于 2011-03-18 21:26:57

我也推荐T4 Templates。您可以使用反射来提供元数据,并且实际的模板看起来类似于asp标记。这是内置在VS中的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2414312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档