自动映射配置文件中的复杂对象

时间:2018-11-27 15:57:32

标签: c# automapper

给出以下类结构...

public class Response
{
     public Data SomeData { get; set; }
     public Data2 SomeMoreData { get; set; } 
}

public class Data
{
     public String DataString { get; set; }
}

public class Data2
{
     public String DataString2 { get; set; }
}

public class MyData
{
     public String DataString { get; set; }
     public String DataString2 { get; set; }
}

给出以下(非常简化的)AutoMapper配置文件类

public class MyProfile : Profile
{
     public MyProfile()
     {
          CreateMap<Data, MyData>();

          CreateMap<Data2, MyData>();
     }
}

如何在配置文件中创建另一个映射,以便在实际执行映射时可以使用此映射...

Response currentResponse = GetResponse();
var result = mapper.Map<MyData>(currentResponse);

我有一些具有很多属性的类,大多数类都可以映射而不必花很多时间来修饰这些属性,但是我想要一些简单的代码调用来进行测试和可维护性。

我在静态Mapper类中看到了很多答案,但是在配置文件方面却找不到很多。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的东西如下:

 MapperConfiguration config = new MapperConfiguration(expression => expression.AddProfile(new MyProfile()));
 IMapper mapper = config.CreateMapper();

您现在有一个IMapper实例,可以通过选择DI作为单例注入。