使用AutoMapper 类库时出现下面这个错误:
Mapper already initialized. You must call Initialize once per application domain/process.
请问哪里出了问题,需要怎么调整
/// <summary>
/// AutoMapper IOC容器
/// </summary>
public static class MapperUtil
{
/// <summary>
/// 集合列表类型映射,自定义配置
/// </summary>
/// <typeparam name="TResult"></typeparam>
/// <param name="self"></param>
/// <param name="result"></param>
/// <param name="config"></param>
/// <returns></returns>
public static List<TDestination> MapToList<TDestination>(this IEnumerable<object> self, Action<IMapperConfigurationExpression> config)
{
if (self == null)
throw new ArgumentNullException();
Mapper.Reset();
Mapper.Initialize(config); // 这行代码报的错
return Mapper.Map<List<TDestination>>(self);
}
}
Mapper.Initialize 只能执行一次,你的代码中多次执行了 Mapper.Initialize
自己封装的代码 你看下上面的代码
建议在 Application_Start 中调用 Mapper.Initialize ,参考 Automapper - Mapper already initialized error
或者通过 PreApplicationStartMethod
[assembly: PreApplicationStartMethod(typeof(BootStrapper.Initializer), "Initialize")]
Mapper.Initialize(config);
这个只能在全局运行一次。之后就直接用Mapper就可以了
所以提前你就要把FormType和ToType注册好
.net framework 还是 .net core ?
– dudu 5年前@dudu: .net framework
– 龍四 5年前