Как зарегистрировать пользовательский ObjectMapper с AutoMapper - PullRequest
2 голосов
/ 15 марта 2010

Я планирую создать свой собственный объектный маппер для типа с использованием интерфейса IObjectMapper в AutoMapper, но я не вижу места, где мы могли бы зарегистрировать реализованный маппер в AutoMapper. Может кто-нибудь сказать мне, как его зарегистрировать.

Изменить: Для получения дополнительной информации об этом, пожалуйста, следуйте обсуждение в группе AutoMapper-Users

1 Ответ

2 голосов
/ 16 марта 2010

Один из способов - заменить статическую функцию реестра в классе MapperRegistry. Вот текущая версия:

public static Func<IEnumerable<IObjectMapper>> AllMappers = () => new IObjectMapper[]
{
#if !SILVERLIGHT
    new DataReaderMapper(),
#endif
    new TypeMapMapper(TypeMapObjectMapperRegistry.AllMappers()),
    new StringMapper(),
    new FlagsEnumMapper(),
    new EnumMapper(),
    new ArrayMapper(),
    new EnumerableToDictionaryMapper(),
    new DictionaryMapper(),
#if !SILVERLIGHT
    new ListSourceMapper(),
#endif
    new EnumerableMapper(),
    new AssignableMapper(),
    new TypeConverterMapper(),
    new NullableMapper()
};

Вы бы просто скопировали его и сделали что-то вроде:

MapperRegistry.AllMappers = () => new IObjectMapper[] {
   // Insert your custom mapper somewhere in this list
};

Просто сделайте это, прежде чем заниматься бизнесом Mapper.CreateMap или Mapper.Initialize Картографы оцениваются по порядку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...