且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何注册AutoMapper定制ObjectMapper

更新时间:2023-02-10 08:31:37

去这里的一个方法是,以取代静态的注册表函数在MapperRegistry类。下面是当前版本:

One way to go here is to replace the static registry function in the MapperRegistry class. Here's the current version:

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()
};

您会基本上复制了一个,这样做:

You'd basically copy that one, and do something like:

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



就做,你做任何Mapper.CreateMap或Mapper.Initialize业务之前。映射器才能进行评估。

Just do that before you do any Mapper.CreateMap or Mapper.Initialize business. Mappers are evaluated in order.