c# - 有没有一种方法可以在 azure 函数启动后立即调用通过依赖项注入(inject)注入(inject)的类中的方法?

标签 c# .net azure azure-functions asp.net-core-hosted-services

我有一个 azure 的函数,其启动如下

internal class Startup : FunctionsStartup
    {
        public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
        {

        }

        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.SomeExtensionMethod();// This will add few services to the service collection.
        }
    }

考虑一个函数应用程序下的多个函数,以此作为启动。让 builder.Services.SomeExtensionMethod() 中注册的服务之一为 IBootstrapService。现在我想在启动执行后立即运行 IBootstrapService 中的一个方法。有没有办法可以做到这一点,因为 azure 函数不支持 IHostedService。 我不能使用独立的函数应用,因为我有很多需要迁移的进程内函数。

最佳答案

检查我的以下发现有助于解决您的问题

我可以看到 GitHub 中有一个关于 Azure Functions .NET Core 中 IHostedService 实现的现有票证。

  • 由于 .NET Core 支持 IHostedService NuGet 包,它将在 Azure Functions 进程内项目中受支持。
  • 可以在builder.services配置方法中实现,并在运行时启动功能主机,然后再启动其他服务是一个不错的方法。

所以# 1 - 由于某些问题,当时不支持自定义 IHostedService 实现,稍后修复。

此外,我可以在 MS 问答论坛 933834 上看到有关 Azure Functions.NET Core 中 IHostedService 的实现支持的类似问题。 @MughundhanRaveendran 提供了解决方案。

关于c# - 有没有一种方法可以在 azure 函数启动后立即调用通过依赖项注入(inject)注入(inject)的类中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75519115/

相关文章:

azure - Azure SQL 托管实例上的维护任务

c# - 提取唯一和非唯一字符串以分隔输出文件

c# - 将 Java 哈希转换为 C# 并需要帮助理解 Java

c# - C# 中的 ReadInt16 返回的内容与 Java 中的 writeShort 所写的不同

.net - ASP.Net HttpModule/ErrorHandler - 如何获取正在执行的程序集版本

azure - 从 azure ad b2c 导出审核日志

c# - 如何在c#中获取系统时间格式,而不是系统时间

.net - 删除 couchbase 存储桶中的所有文档

c# - Dispose 应该做什么 - 只清理资源或执行一些 "business logic"?

mysql - 即使 JOIN 表中不存在行也能获取结果