我打算使用 AutoMapper 的 IObjectMapper 接口(interface)为类型创建我自己的自定义对象映射器,但我看不到任何可以向 AutoMapper 注册实现的映射器的地方。谁能告诉我怎么注册。
编辑:有关这方面的更多信息,请关注 AutoMapper-Users 组中的 discussion
最佳答案
一种方法是替换 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/