我计划使用 AutoMapper 的 IObjectMapper 接口(interface)为一个类型创建我自己的自定义对象映射器,但我没有看到任何地方可以用 AutoMapper 注册已实现的映射器。谁能告诉我如何注册。
编辑:有关这方面的更多信息,请关注 discussion在 AutoMapper-Users 组
最佳答案
这里的一种方法是替换 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 业务之前执行此操作。映射器按顺序进行评估。
关于c# - 如何使用 AutoMapper 注册自定义 ObjectMapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2449142/