作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有几个函数想要重构为 Azure 持久函数,其中编排器调用不同的 ActivityFunction(之前单独的 Azure Functions)。单独的函数使用启动,我在其中配置依赖项注入(inject)和一些其他配置。是否可以在持久功能方案中使用启动类?我在 documentation 中找不到任何似乎表明这一点的内容。 .
如果不可能,还有哪些其他替代方案,例如定义数据库连接字符串和依赖项注入(inject)?
谢谢
最佳答案
持久函数中也可以进行依赖注入(inject)。
从 Nuget 安装并添加对以下包的引用:
Microsoft.Azure.Functions.Extensions.DependencyInjection
这是完成依赖注入(inject)的启动文件的工作示例:
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Azure.WebJobs.Host.Bindings;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;
[assembly: FunctionsStartup(typeof(MyDurableFunction.Startup))]
namespace MyDurableFunction
{
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
var executioncontextoptions = builder.Services.BuildServiceProvider()
.GetService<IOptions<ExecutionContextOptions>>().Value;
var currentDirectory = executioncontextoptions.AppDirectory;
var environment = Environment.GetEnvironmentVariable("AZURE_FUNCTIONS_ENVIRONMENT");
var config = new ConfigurationBuilder()
.SetBasePath(currentDirectory)
.AddJsonFile($"settings.{environment}.json", optional: false, reloadOnChange: false)
.AddEnvironmentVariables()
.Build();
builder.Services.AddSingleton<IMyBusinessService1>(sp =>
{
var secretFromAppSettings = config["secretKey"];
var passwordFromAppSettings = config["secretPassword"];
return new MyBusinessService1(secretFromAppSettings, passwordFromAppSettings);
});
builder.Services.AddSingleton<IDatabaseHelper, DatabaseHelper>();
builder.Services.AddLogging();
}
}
}
希望这有帮助!
关于Azure 耐用功能 : Can I use a startup. cs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61395849/
我是一名优秀的程序员,十分优秀!