C# 时间触发Azure函数

C# 时间触发Azure函数,c#,azure,.net-core,timer,azure-functions,C#,Azure,.net Core,Timer,Azure Functions,我已经创建了一个时间触发的azure函数来执行某些任务,我正在使用依赖项注入来调用业务层方法。但是我有点困惑,我被困在如何在Run方法中使用依赖引用变量,以及如何调用BL方法,因为Run是静态方法 public class FunctionAccount { private IDeleteAccount _deleteAccount; public FunctionAccount(IDeleteAccount deleteAccount) { _delet

我已经创建了一个时间触发的azure函数来执行某些任务,我正在使用依赖项注入来调用业务层方法。但是我有点困惑,我被困在如何在Run方法中使用依赖引用变量,以及如何调用BL方法,因为Run是静态方法

public class FunctionAccount
{
    private IDeleteAccount _deleteAccount;
    public FunctionAccount(IDeleteAccount deleteAccount)
    {
        _deleteAccount = deleteAccount;
    }

     [FunctionName("FunctionDAccount")]
    public static void Run([TimerTrigger(GlobalConstant.DeleteAccountTimer)] TimerInfo myTimer)
    {
        _deleteAccount .DeletePastYearsUsers(); // This is what I want to do, but as Run method is static I'm not able to do so
        Log.Information($"Function executed at: {DateTime.Now}");
    }


}

正如其他人提到的(将其作为可见性的答案),删除静态方法将允许您在函数中使用DI。设置DI容器和函数类的构造函数以接受注入的服务后,您不需要对函数的结构进行任何其他更改。

正如其他人所提到的(将其作为可见性的答案),删除静态方法将允许您在函数中使用DI。一旦设置了DI容器和函数类的构造函数以接受注入的服务,您就不需要对函数的结构进行任何其他更改。

Run
不再要求是静态方法如果您将DI与Azure函数一起使用,那么您不需要将入口点设置为静态的。ahhh,非常感谢,我将尝试它,在我使用DI或我可以按原样使用时,是否需要进行任何更改?
Run
不再要求是静态方法如果您使用带有Azure函数的DI,那么您不需要将入口点设为静态。啊,非常感谢,我将尝试它,在我使用DI时,是否需要进行任何更改,或者我可以按原样使用?