我试图从Azure函数调用存储库类,但遇到了一个错误
没有对应于形参的给定参数
我从. NET Core Web API项目中复制了存储库类结构,并且知道这与依赖注入有关。
repository类的构造函数如下所示:
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)
{
// ...
}
您可以在< code>Startup类中定义依赖项声明,如该文件所示,以后不要将函数定义为< code>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
}
}
使用指南 - 统计设置 - 第三方推广管理 - hm参数与utm参数的对应关系 百度统计通过落地页中URL的参数来识别该URL的广告信息,点此了解什么是URL参数。 百度统计标识广告信息一直采用hm参数,即hmsr、hmpl、hmcu、hmkw、hmci五个参数。同时也有用户习惯使用utm参数,即utm_source、utm_medium、utm_campaign、utm_term、utm_con
我有一个时间触发的Azure功能
我已经能够让用net core编写的Azure函数运行。我现在添加了对“WindowsAzure.存储”的引用,现在当我使用本地测试环境(“func主机启动”)时,我得到了加载体验。 我不能使用默认的表存储绑定器,因为我需要在不同的表中重新插入记录。 我使用预编译函数,正在OSX上使用VSCode进行开发。如果支持或不支持此方案,我找不到任何信息。甚至有可能让外部依赖项与Azure函数的2.0运行
我需要重构现有的抽象类来实现依赖注入,但是这个类有两个接受其他参数的构造函数。 我需要注入一些接口,并避免在构造函数中传递任何其他参数,如“settingsId”和“Setting”。所以我的想法是在创建此类的实例后创建两种方法来设置这些参数。 但它看起来不是一个合适的解决方案,因为如果开发人员忘记在创建实例后运行这些方法之一,我们将来可能会得到一个异常(对象未设置为引用...)。我应该如何正确执
我正在使用Azure函数v3和DI。我有一个服务,我在启动时设置了一个短暂的生命周期。cs(使用:
我有一个关于 azure 函数 v1 中的依赖注入的新问题。 实际情况: 我有一个azure函数V1,我想在其中引用我的业务服务,而无需重新发明轮子即可使用我的服务。我在Internet上搜索并找到了这篇来自Microsoft的有趣文章。 但是,它似乎只适用于azure函数v2(. net core),因为每当我尝试安装时,我总是收到以下错误: 检测到Microsoft.Azure.WebJobs