Как мне 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);