gpt4 book ai didi

azure - .NET Azure Functions 中的依赖项注入(inject) - Azure Cosmos DB 客户端

转载 作者:行者123 更新时间:2023-12-01 00:12:53 25 4
gpt4 key购买 nike

我在 Microsoft Docs 上阅读了一篇有关使用 dependency injection in .NET Azure Functions 的文章。

一切正常,正如您在文章中看到的,它注册了 CosmosClient

builder.Services.AddSingleton((s) => {
return new CosmosClient(Environment.GetEnvironmentVariable("COSMOSDB_CONNECTIONSTRING"));
});

问题是,如何在我的函数中使用 Cosmos Client?我不想每次都创建 Cosmos 客户端实例。

public  class CosmosDbFunction
{
public CosmosDbFunction()
{

}

[FunctionName("CosmosDbFunction")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
// TODO: do something later
return null;
}
}

最佳答案

不必使用界面。您可以直接注入(inject)CosmosClient

There's an example of this in the Cosmos client samples directory其中包括以下代码:

private CosmosClient cosmosClient;
public AzureFunctionsCosmosClient(CosmosClient cosmosClient)
{
this.cosmosClient = cosmosClient;
}

对于测试,创建此客户端的团队似乎已经决定采用将所有内容抽象/虚拟的方法,以允许模拟框架根据需要覆盖方法。 issue #303 中对此有所涉及。 。另请参阅堆栈溢出:How do I mock a class without an interface?

关于azure - .NET Azure Functions 中的依赖项注入(inject) - Azure Cosmos DB 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56364685/

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