#c# #automapper
#c# #automapper
Вопрос:
Я должен определить несколько собственных сопоставлений в AutoMapper, это около 50 сопоставлений.
Я добавил их в список
var alphabeticallySortedTypes = new List<Type>()
{
typeof(AmtType),
typeof(AnyCountType),
//some more
}
И я пытаюсь добавить их в foreach:
AutoMapper.Mapper.CreateProfile("SelfCollectionMapping");
foreach(var alphabeticallySortedType in alphabeticallySortedTypes)
{
AutoMapper.Mapper.CreateMap<alphabeticallySortedType, alphabeticallySortedType> ()
.WithProfile("SelfCollectionMapping")
}
Ошибка, которую я получаю,
alphabeticallySortedType является переменной, но используется как тип.
Есть идеи о том, как я могу обойти это?
Ответ №1:
Вам необходимо передать объекты типа в качестве параметров методу CreateMap .
Mapper.CreateMap(alphabeticallySortedType, alphabeticallySortedType);
Комментарии:
1. Я определил метод расширения public static IMappingExpression<TSource, TDestination> MapAllFieldsWhenTargetIsEmpty<TSource, TDestination>(это IMappingExpression<TSource, TDestination> MappingExpression), который недоступен, если я это сделаю
2. Вам придется переписать все, чтобы работать с нестандартным интерфейсом.
3. Главное, чтобы оттуда я получал доступ к ForAllMembers, который недоступен с использованием не общего метода
4. Да, возможно, вам нужно обновить AM.