2010-03-15 55 views
2

我打算使用AutoMapper的IObjectMapper接口为类型创建自己的自定义对象映射器,但是我没有看到任何可以使用AutoMapper注册已实现的映射器的地方。任何人都可以告诉我如何注册它。如何使用AutoMapper注册自定义ObjectMapper

编辑:有关它的更多信息,请按照discussion在AutoMapper-Users组

回答

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业务之前。映射器按顺序进行评估。

相关问题