将DTO映射到域模型

时间:2014-04-03 08:36:50

标签: c# mapping valueinjecter

我有一个DTO如下:

 class ProjectDTO{

     string Title;
     string Data;

 }

然后域模型如下:

  class Project{
    Content Content {set;get;}

  }

  class Content{
     string Title
     string Data;

  }

我正在使用ValueInjecter。我想将DTO映射到域模型。

project.InjectFrom(projectDTO);

由于内部物体而无法正常工作。

如何使用值injecter来完成?

1 个答案:

答案 0 :(得分:1)

查看文档,我认为您需要使用FlatLoopValueInjection类型。

project.InjectFrom<FlatLoopValueInjection>(projectDTO);

来源:https://valueinjecter.codeplex.com/wikipage?title=flattening&referringTitle=Home

修改

我只是注意到这只能解决你问题的正好相反。嘿。

修改

为什么不呢?

project.Content.InjectFrom(projectDTO);

修改

还有UnflatLoopValueInjection类型似乎可以满足您的需求。

https://valueinjecter.codeplex.com/wikipage?title=unflattening

虽然文档有点模糊。似乎你必须遵循某种命名约定才能真正做任何事情。

class ProjectDTO
{
    string ContentTitle; // Project.Content.Title becomes ProjectDTO.ContentTitle
    string ContentData;  // Project.Content.Data becomes ProjectDTO.ContentData
}

project.InjectFrom<UnflatLoopValueInjection>(projectDTO);