Я использовал 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)
}
}
}
}
}
}