【问题标题】:Time triggered Azure Functions时间触发 Azure Functions
【发布时间】:2021-02-08 16:55:32
【问题描述】:

我创建了一个时间触发的天蓝色函数来执行某些任务,我正在使用依赖注入来调用业务层方法。但是我有点困惑并卡住了如何在 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}");
    }


}

【问题讨论】:

  • Run 不再需要是静态方法
  • 如果你在 Azure Function 中使用 DI,那么你不需要入口点是静态的。
  • ahhh ,非常感谢,我会尝试一下,在我使用 DI 时是否需要进行任何更改,或者我可以直接使用?

标签: c# azure .net-core timer azure-functions


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 2018-10-26
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多