Невозможно получить доступ к репозиториям, используя автофак - PullRequest
0 голосов
/ 11 октября 2019

Я пытался получить текущий экземпляр объекта, но значения внутри объекта, который я получаю, равны нулю, так как я использую autofac для внедрения метода.

--- RecurringJobService class--

public class RecurringJobService
{
    public UnitOfWork _unitOfWork;

    [RecurringJob("* * * * *")]
    [Queue("jobs")]
    [InjectionMethod]
    public async Task SendMail(UnitOfWork unitOfWork)
    {            
        var a = unitOfWork.StatementOfWorkRepository.GetAll();            
    }
}

Здесь я создал класс RecurringJobService и хочу получить значения UnitOfWork в методе SendMail, и с помощью автофака я сделал инъекцию через метод полученияэкземпляр объекта KUnitOfWork во время выполнения приложения, но не получает экземпляр классов внутренних параметров.

--- Startup.cs в .NetCore ---

var builder = new ContainerBuilder();
   builder.RegisterType<RecurringJobService>()
          .OnActivating(e => e.Instance.SendMail(new UnitOfWork(new KickOffContext(new DbContextOptions<KickOffContext>()))));
   var container = builder.Build();
   container.Resolve<RecurringJobService>();

Всякий раз, когда я пыталсядля вызова метода SendMail требуется объект UnitOfWork, но объекты внутреннего класса создаются как новые, поэтому объект UnitOfWork также дает значения Null. И, что я хочу, это получить объект KickOffContext (т.е. мой класс DBContext) внутри объекта UnitOfWork при запуске приложения.

...