Как мне Mapster Игнорировать значения Id, когда в sourcetype есть Dto в имени типа

Я прочитал эту страницу, но у нее не было ответа. https://github.com/MapsterMapper/Mapster/wiki/Ignoring-members

Я хочу игнорировать все Id поля, когда тип источника назван как SomethingDto или же FooDto

Что-то вроде этого...

TypeAdapterConfig<TSource, TDestination>
    .NewConfig()
    .IgnoreIf((src, dest) => src.GetType.Name.EndsWith("Dto"), dest => dest.Id);

Другой вопрос, как я могу установить глобальное сопоставление типов, а затем в середине метода начать использовать этот новый, и когда метод завершится, он вернется к исходному глобальному значению? Например, я не хочу всегда игнорировать идентификаторы.

1 ответ

У меня есть кое-что для второй половины моего вопроса. Создайте клон вашей глобальной конфигурации, игнорируйте все столбцы с именем Id или чем-то еще, затем вставьте эту конфигурацию в ваш метод Adapt<>. Как только метод существует, вы возвращаетесь к глобальным настройкам конфигурации.

            var mapsterConfig = TypeAdapterConfig.GlobalSettings.Clone();
            mapsterConfig.Default.Ignore("Id");
            var entity = dto.Adapt<Entity>(mapsterConfig);
Другие вопросы по тегам