自动映射器,映射器未初始化

时间:2020-02-18 06:45:30

标签: c# asp.net automapper autofac

我将automapper与autofac一起使用。我的配置文件如下。我在UserConsumer.cs类中使用了它。当我使用它时,第一个映射器工作正常,但是第二个映射器抛出异常“映射器未初始化....”。我检查了其他问题,但没有找到隔离。

映射器未初始化。用适当的配置呼叫初始化。如果您尝试通过容器或其他方式使用Mapper实例,请确保您没有对静态Mapper.Map方法的任何调用,并且如果您使用的是ProjectTo或UseAsDataSource扩展方法,请确保传递适当的IConfigurationProvider实例。

Global.asax.cs> ContainerConfig.RegisterObjects();

public class ContainerConfig
    {
        public static void RegisterObjects()
        {
            var builder = new ContainerBuilder();

            var config = new AutoMapper.MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new MapperProfile());
            });

            builder.Register(context => config.CreateMapper()).As<AutoMapper.IMapper>().SingleInstance();

            ////more code here

            Container.Current = builder.Build();

        }
    }
}
public class UserConsumerBase
    {
        protected readonly IComponentContext _container;

        public UserConsumerBase(IComponentContext container)
        {
            _container = container;
        }

        protected async Task Consume(UserMessage message)
        {
            using (var db = new OracleDbContex())
            {              

                var mapper = _container.Resolve<IMapper>();   
               if(...)
                  {
                   if(...)
                      {
                       if(...)
                           {
                              var messageUser = mapper.Map<USER>(message);
                              user = mapper.Map(messageUser, user); *(failed line)
                            }
                      }
                  }


            }
        }
   }

0 个答案:

没有答案