gpt4 book ai didi

c# - Azure Durable Function 中的 IoC 发生在哪里?

转载 作者:行者123 更新时间:2023-12-03 21:45:41 32 4
gpt4 key购买 nike

此代码直接来自 Visual Studio 2019 中的 Durable Function 启动

    [FunctionName("Orchestrator_HttpStart")]
public static async Task<HttpResponseMessage> HttpStart(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestMessage req,
[DurableClient] IDurableOrchestrationClient starter,
ILogger log)
{
// Function input comes from the request content.
string instanceId = await starter.StartNewAsync("Orchestrator", null);

log.LogInformation($"Started orchestration with ID = '{instanceId}'.");

return starter.CreateCheckStatusResponse(req, instanceId);
}

IDurableOrchestationClient starterILogger log 的值来自哪里?由于这些参数不会在 HTTP 请求中传递,我假设幕后一定发生了一些 IoC 魔法,但我不完全确定它是什么/在哪里。

最佳答案

I'm assuming that there must be some IoC magic happening behind the scenes.

正确。

Where is the value for IDurableOrchestrationClient coming from?

IoC 来自 AddDurableTask ( source )。 IDurableClientFactory 创建继承自 IDurableOrchestrationClientIDurableClient。您可以找到有关使用 AddDurableTask here 的示例.

serviceCollection.TryAddSingleton<IDurableClientFactory, DurableClientFactory>();

Where is the value for ILogger coming from?

(正如 @Ian Kemp 和 @Nkosi 已经指出的)

IoC 来自 AddWebScriptHost ( source )。 ILoggerFactory 创建 ILogger

loggingBuilder.Services.AddSingleton<ILoggerFactory, ScriptLoggerFactory>();

关于c# - Azure Durable Function 中的 IoC 发生在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64516829/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com