c# - Azure 函数,依赖注入,“没有给出与形参对应的参数”,dotnet core
问题描述
我正在尝试从 Azure 函数调用存储库类,但出现错误
没有给出与形式参数相对应的参数
我从 .NET Core Web API 项目中复制了存储库类结构,并且知道这与依赖注入有关。
存储库类的构造函数如下所示:
public CaseRepository(ILogger<CaseRepository> logger, IConfiguration configuration)
{
_logger = logger;
_configuration = configuration;
}
我如何将它传递给 Azure 函数的静态方法,就像我对这样的 Web API 调用所做的那样:
[FunctionName("TestFunction")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log, CaseRepository caseRepository)
{
// ...
}
解决方案
您可以在此文件Startup
中显示的类中定义依赖项声明,然后再将函数定义为定义它的普通类函数。在类构造函数中注入所需的依赖项。请参阅此内容以供参考。static
创业班
[assembly: FunctionsStartup(typeof(YourNamespace.Startup))]
namespace YourNamespace
{
public class Startup : FunctionsStartup
{
builder.Services.AddSingleton<ICaseRepository, CaseRepository>();
}
}
用法 - 这里 ICaseRepository
被注入到包含 Azure 函数的类中。
public class TestFunction
{
private readonly ICaseRepository caseRepository;
public TestFunction(ICaseRepository caseRepository)
{
this.caseRepository= caseRepository;
}
[FunctionName("TestFunction")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
// ... use caseRepository instance
}
}
推荐阅读
- tensorflow-lite - 是否可以将 tflite 转换为 pb?
- vue.js - 在 Nuxt 页面上查看 PDF
- firebase - 托管在 Firebase 上的 Ionic 应用程序需要清除缓存
- spring - 从 Jenkins 运行 Spring Boot
- python - 尝试正确格式化此字符串,因为它会引发错误
- php - 批量更新端点资源路由
- jakarta-ee - EJBConfigurationException IBM websphere 9.0.11
- python - 使用递归函数排序
- javascript - 如何使用来自 react-responsive 的 MediaQuery 来仅隐藏一个 JSX 属性?
- wordpress - wordpress 多站点辅助站点不工作