0

Я работаю с Принадлежит типа, как здесь: Strong reference of Autofac 2проблемы конфигурации Autofac пытаются интегрировать Quartz

Я также использую Quartz планировщик, MSMQ и EF.

My config выглядит следующим образом. У меня явно что-то не так, поскольку контекст, который вводится в репозитории, является другим экземпляром, чем тот, который предоставляется службе.

builder.RegisterType<EmailAllocationJob>(); 

builder.RegisterGeneric(typeof(JobWrapper<>)); 

builder.RegisterType<DataContext>().InstancePerOwned<EmailAllocationJob>(); 
builder.RegisterType<DataContext>().As<IUnitOfWork>(); 

builder.RegisterType<EmailAccountRepository>().As<IEmailAccountRepository>(); 
builder.RegisterType<EmailMessageRepository>().As<IEmailMessageRepository>(); 
builder.RegisterType<EmailMessageQueue>().As<IEmailMessageQueue>(); 

builder.RegisterType<EmailAllocationService>().As<IEmailAllocationService>(); 

Я не могу на всю жизнь выяснить, как настроить конфигурацию. Я считаю, что это линия:

builder.RegisterType<DataContext>().As<IUnitOfWork>(); 

То, что я хочу сказать, что-то вроде:

builder.RegisterType<DataContext>().As<IUnitOfWork>().InstancePerOwned<EmailAllocationJob>(); 

Спасибо заранее, если вы можете помочь.

ответ

0

Хорошо, я понял. Необходимая линия:

builder.RegisterType<DataContext>().InstancePerOwned<EmailAllocationJob>() 
    .As<IUnitOfWork>().AsSelf(); 

Так что кажется важным, что DataContext особенности как общий аргумент RegisterType РАЗ, и что метод вызывает в качестве <>() и AsSelf() должны быть подключены прикован в одном заявление. Кажется очевидным сейчас, со свежей головой после вчерашнего вечера.

Смежные вопросы