Автоматическое сопоставление сложных объектов в профиле - PullRequest
0 голосов
/ 27 ноября 2018

Учитывая следующую структуру класса ...

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 голосов
/ 04 декабря 2018

Я думаю, что вы ищете что-то вроде следующего:

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

Теперь у вас есть экземпляр IMapper, который может быть введен при выборе DI в качестве одиночного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...