c# - 如何使用 AutoMapper 注册自定义 ObjectMapper

标签 c# automapper

我计划使用 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/

相关文章:

c# - 捕捉声音输出

c# - 强制将 XML 字符实体放入 XmlDocument 中

c# - 使用 AutoMapper 从接口(interface)映射到具体类型

c# - 让 Automapper 使用由带有 WebApi 的 Autofac 构建的服务

c# - 是否可以在 AfterMap 中调用 Mapper.Map?

c# - 如何使用 AutoMapper 将多个子类映射到一个类中?

c# - 如何发送邮件,邮件正文作为参数并使用线程 - C#

c# - 如何将短日期字符串转换回 DateTime 对象?

c# - AutoMapper.dll中出现 'AutoMapper.AutoMapperMappingException'类型的异常,但用户代码中没有处理

c# - Automapper 在 Profile 类中注入(inject) DbContext