1

I have a DTO as follows:

 class ProjectDTO{

     string Title;
     string Data;

 }

Then domain model as follows:

  class Project{
    Content Content {set;get;}

  }

  class Content{
     string Title
     string Data;

  }

I am using ValueInjecter. I want to Map DTO to Domain Model.

project.InjectFrom(projectDTO);

Doesnt quite work due to inner object.

How can this be done using value injecter?

DarthVader
  • 52,984
  • 76
  • 209
  • 300

1 Answers1

1

Looking at the documentation, I think you need to use the FlatLoopValueInjection type.

project.InjectFrom<FlatLoopValueInjection>(projectDTO);

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

edit

I just noticed that this only solves the exact opposite of your problem. Heh.

edit

Why not this?

project.Content.InjectFrom(projectDTO);

edit

There is also the UnflatLoopValueInjection type that seems to do what you need.

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

The documentation is a little vague though. Seems that you have to follow some sort of naming convention in order for it to actually do anything.

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

 

project.InjectFrom<UnflatLoopValueInjection>(projectDTO);
Steven Liekens
  • 13,266
  • 8
  • 59
  • 85