Получить пустую коллекцию вместо нуля при сопоставлении с Mapster - PullRequest
1 голос
/ 13 марта 2020

У нас огромное приложение, управляемое данными, которое включает в себя несколько систем, поэтому требуется много картографирования. Из-за проблем с производительностью мы собираемся перейти с AutoMapper на Mapster.

Пока все хорошо с Mapster, но при отображении Collections Mapster возвращает значение null вместо пустого Collection.

Automapper использовал для возврата пустых коллекций по умолчанию, но я не могу понять, как это сделать в Mapster.

Я пытался сделать следующее, но он не работает

TypeAdapterConfig.GlobalSettings.ForDestinationType<ICollection>().IgnoreNullValues(true);

TypeAdapterConfig.GlobalSettings.ForType(typeof(ICollection), typeof(ObservableCollection<>))
                        .IgnoreNullValues(true);

TypeAdapterConfig.GlobalSettings.ForType(typeof(ObservableCollection<>), typeof(ICollection))
                        .IgnoreNullValues(true);

Любой помощь была бы отличной

1 Ответ

0 голосов
/ 18 марта 2020

Я получил это благодаря команде Mapster. Публикация здесь на случай, если кому-то еще понадобится

Вы можете настроить его явно:

TypeAdapterConfig.GlobalSettings.Default
    .AddDestinationTransform((IReadOnlyList<ChildDto> list) => list ?? new List<ChildDto>());

Mapster также добавил поддержку c generic AddDestinationTransform

config.Default.AddDestinationTransform(DestinationTransform.EmptyCollectionIfNull);

Это сработало для меня.

...