对象到对象映射实用程序

我喜欢干净地将公共和域对象 (因此,nHibernate在这里没有帮助)彼此隔离,这最终迫使我编写大量代码来将一个对象映射到另一个对象。 什么工具/插件可以让人们在.NET中手动执行这种映射?m每当我谷歌这个时候,它认为我想要做ORM,这不是我想要的。 谢谢!

编辑19:33CST:好的,我写了一个非常基本的应用程序(非常快速编写的代码)来演示我正在寻找的东西。 我只是想知道是否有一个VS插件可以为我做这个。

VS2008解决方案

您可能想尝试一下AutoMapper 。 这听起来像你在寻找。

因此,似乎对运行时解决方案不满意,我编写了一个小实用程序,它将在代码中创建映射。 你可以下载下面的源代码并写出更好的error handling等等。我很感激你做的任何很酷的修改,这是匆忙做的,但有效。 请尊重该代码是根据LGPL发布的。

对象到对象映射实用程序源代码

更新2009年6月23日 :我对清理它的代码进行了一些更新(一点点),并且还添加了将映射保存到文件的function,以便以后可以修改它。

还有一个名为Otis的有趣项目。 以下是从文档页面获取的示例* .otis.xml映射:

                  

要从程序集中读取映射文件:

 // configure the new Configuration object using metadata of types in the current assembly Configuration cfg = new Configuration(); // instantiate a new Configuration, one per application is needed cfg.AddAssembly(Assembly.GetExecutingAssembly()); // initialize it 

嗯,我以前在哪里见过它? ;)

使用ValueInjecter ,你可以将任何东西映射到任何东西,例如

  • 对象< - >对象
  • object < - > Form / WebForm
  • DataReader – >对象

它具有很酷的function,如:平整和不平整