#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 . но я вижу, что мой список дочерних объектов инициализировался при отображении родительского объекта. При какой насыщенности оно может инициализироваться? Я проверяю значение дочернего объекта перед отображением, и оно уже изменено для инициализации объекта. Извините за глупый вопрос.