3

我计划使用 AutoMapper 的 IObjectMapper 接口为类型创建自己的自定义对象映射器,但我没有看到任何可以使用 AutoMapper 注册实现的映射器的地方。谁能告诉我怎么注册。

编辑:有关这方面的更多信息,请关注AutoMapper-Users 组的讨论

4

1 回答 1

2

一种方法是替换 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 业务之前执行此操作。映射器按顺序进行评估。

于 2010-03-16T12:51:51.017 回答