Automapper, Mapper Не инициализирован - PullRequest
0 голосов
/ 18 февраля 2020

Я использовал autopper с autofa c. Мой конфигурационный файл ниже. Я использовал его в своем классе UserConsumer.cs. Когда я использовал его, первый маппер работал отлично, но исключение второго маппера "Mapper Not initialized ....". Я проверил другие вопросы, но я не нашел решения.

Mapper не инициализирован. Вызовите Initialize с соответствующей конфигурацией. Если вы пытаетесь использовать экземпляры mapper через контейнер или иным образом, убедитесь, что у вас нет вызовов методов stati c 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)
                            }
                      }
                  }


            }
        }
   }
...