Пример кода для: update (SourceObject, TargetObject, String [] Exceptions)

StackOverflow https://stackoverflow.com/questions/4385510

Вопрос

Я хочу общий метод обновления, который копирует все свойства 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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top