Asp.NET MVC Autofac Inject依赖非控制器类

时间:2018-06-08 16:19:58

标签: asp.net model-view-controller autofac

从控制器继承的所有类都已插入依赖项,但我不知道如何注入那些不从contoller继承的类。

在下面的示例中, SendEmailAndLog()方法等待注入 ILoggerService 接口。但我不知道该怎么做。

public async Task Execute(IJobExecutionContext context)
{

   SendEmailHelper sendEmailHelper = new SendEmailHelper();
    await sendEmailHelper.SendEmailAndLog(user, "Task", user.UserName, UserManager, loggerService);

}

此任务在Global.asax.cs上称为 Application_Start()方法

我创建了一个构造函数来接收此服务作为参数,这适用于调用Class Emailservice的控制器中的方法。但是有些类不能从控制器继承,所以我不知道如何注入。

我的服务是:

public interface ILoggerService
    {
        void Error(ExceptionLogger exception);
        void SaveLog();
    }

    public class LoggerService : ILoggerService
    {
        private readonly ILoggerRepository loggerRepository;
        private readonly IUnitOfWork unitOfWork;


        public LoggerService(ILoggerRepository loggerRepository, IUnitOfWork unitOfWork)
        {
            this.loggerRepository = loggerRepository;
            this.unitOfWork = unitOfWork;
        }

        public void Error(ExceptionLogger exception)
        {
            loggerRepository.Error(exception);
        }

        public void SaveLog()
        {
            unitOfWork.Commit();
        }


    }

0 个答案:

没有答案