Пример кода для: update (SourceObject, TargetObject, String [] Exceptions)
-
10-10-2019 - |
Вопрос
Я хочу общий метод обновления, который копирует все свойства sourceObject
к targetObject
но не методы, упомянутые в exceptions
.
Решение
Вы пробовали использовать AutoMapper
? Это позволяет определить пользовательское отображение, а также автопостановку.
--редактировать--
Пример:
Приведены следующие типы:
public class Type1
{
public int MyProperty1 { get; set; }
public int MyProperty2 { get; set; }
public int MyProperty3 { get; set; }
public int MyProperty4 { get; set; }
public int MyProperty5 { get; set; }
}
public class Type2
{
public int MyProperty1 { get; set; }
public int MyProperty2 { get; set; }
public int MyProperty3 { get; set; }
public int MyProperty7 { get; set; }
public int MyProperty8 { get; set; }
}
Чтобы создать карту, которая игнорирует 2 свойства (myproperty7 и myproperty8):
var map = Mapper.CreateMap<Type1, Type2>().
ForMember(dest => dest.MyProperty7, opt => opt.Ignore()).
ForMember(dest => dest.MyProperty8, opt => opt.Ignore());
Наконец -то копируйте:
Type2 type2Variable = Mapper.Map<Type1, Type2>(type1Variable);
-Редок2--
Картирование пример одинаковых типов:
var map = Mapper.CreateMap<Type1, Type1>().
ForMember(dest => dest.MyProperty4, opt => opt.Ignore()).
ForMember(dest => dest.MyProperty5, opt => opt.Ignore());
использовать:
Type1 anotherType1Variable = Mapper.Map<Type1, Type1>(type1Variable);
Не связан с StackOverflow