Событие равно нулю после сбора Automapper

#c# #wpf #automapper

#c# #wpf #automapper

Вопрос:

У меня есть два основных объекта, DTO.Object1 и My.Object2. Оба объекта имеют коллекцию дочерних объектов.

 public class Object1
{
    public List<ChildObject1> ChildObjectList{get;set;}
}

public class Object2
{
    public ObservableCollection<ChildObject2> ChildObjectList{get;set;}
}
  

Перед сопоставлением я добавил одно событие в Object2> ChildObjectList

 foreach(ChildObject2 co2 in ChildObjectList)
{
    co2.PropertyChange  = MyPropertyChange;
}
  

Затем я сопоставляю эти два объекта

 __mapper.Map(DTO.Object1, My.Object2);
  

после этого это событие PropertyChange из каждого ChildObject2 равно нулю.

Вот как я создаю MAP =>

 public class ObjectMappingProfile: Profile
    {
        public MyMappingProfile()
        {
            this.CreateMap<Dto.Object1, Model.Object2>()
                    .EqualityComparison((dto, o) =>
                        dto.id== o.id);
        }
}
  

Я также добавляю AddCollectionMappers(); при настройке MapperConfiguration.

 var autoMapperConfig = new MapperConfiguration(x =>
            {
                x.AddCollectionMappers();
                x.AddProfile(typeof(ObjectMappingProfile));
});
  

Есть идеи? Спасибо.

Комментарии:

1. Можете ли вы также включить классы ChildObject1 и ChildObject2?

2. @tontonsevilla, я могу отобразить свойство, но единственное событие равно нулю после отображения. Я сомневаюсь, что он создал новый объект при отображении. Но я сделал то же самое с другим ppl. не знаю, почему оно все еще не работает.

3. @Loran, я собрал скрипку для запуска вашего сценария. Однако я не могу воспроизвести сценарий, который вы описали. Можете ли вы взглянуть на это и посмотреть, что, если отличается от вашего кода? Мы могли бы сотрудничать, если вы хотите, просто отправьте мне сообщение в чате. dotnetfiddle.net/Uvo1Kd

4. @ThomasLuijken, большое тебе спасибо, я скоро проверю и вернусь к тебе.

5. @ThomasLuijken, я проверил ваш образец. Я выполнил тот же код с u . но я вижу, что мой список дочерних объектов инициализировался при отображении родительского объекта. При какой насыщенности оно может инициализироваться? Я проверяю значение дочернего объекта перед отображением, и оно уже изменено для инициализации объекта. Извините за глупый вопрос.