AutoMapper и отражение - PullRequest
       11

AutoMapper и отражение

3 голосов
/ 02 декабря 2010

Моя хостинговая компания не разрешает Reflection.Как я могу использовать AutoMapper?

Нужно ли указывать для каждого свойства .ForMember?

Mapper.CreateMap<Person, PersonData>()
            .ForMember(dest => dest.Name, o => o.MapFrom(src => src.Name))
            .ForMember(dest => dest.Address, o => o.MapFrom(src => src.Address));

спасибо,

Филип

Ответы [ 3 ]

5 голосов
/ 02 декабря 2010

Automapper использует reflection.emit, вы уверены, что можете использовать Automapper?

[Редактировать]

Не знаю ни одного, который использует без отражения, даже одинЯ создал XmlDataMapper на CodePlex использует отражение.Было бы трудно создать его без отражения или отражения. Emit

Самый простой и простой способ сделать это - использовать любой из двух или обоих методов.

public class ConversionHelper
{
   public static ClassB Convert(ClassA item)
   {
      return new ClassB() { Id = item.Id, Name = item.Name };
   }

   public static List<ClassB> Convert(List<ClassA> list)
   {
      return list.Select(o => new ClassB() { Id = o.Id, Name = o.Name }).ToList();
   }
}


public class ClassA
{
   public int Id { get; set; }
   public string Name { get; set; }
}
public class ClassB
{
   public int Id { get; set; }
   public string Name { get; set; }
}

Из приведенного вами примера, где вы в любом случае пытаетесь отобразить свойство одно за другим, это в тех же строках, но с меньшим кодом.

1 голос
/ 02 декабря 2010

Вы не можете использовать Automapper или любую другую архитектуру отображения, о которой я знаю, без размышлений. Это логически очевидно. Как можно сопоставить две неизвестные сущности друг с другом без использования их отраженных свойств? В этом случае единственный вариант - создать специальный пакет для преобразования одного объекта в другой.

0 голосов
/ 02 декабря 2010

Совсем нет.AutoMapper проделал большую работу по интеллектуальному картографированию.Если имя свойства вашего исходного и конечного объектов совпадает, AutoMapper автоматически сопоставит эти свойства с вами.

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