【发布时间】:2018-08-21 07:28:03
【问题描述】:
我真的很难找到如何从 Azure 函数中创建的实例访问应用程序设置。
我有以下代码...
namespace ThingServiceFunctionApp
{
public static class RoleFunctions
{
[FunctionName("GetThings")]
public static async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "roles")]HttpRequest req, ILogger log)
{
return await FunctionApp.GetFunction<IGetThingsFunction>().RunAsync(req, log).ConfigureAwait(false);
}
public static class FunctionApp
{
private static readonly IFunctionFactory FuncFactory = new FunctionFactory(new Startup());
public static IFunction GetFunction<TFunction>() where TFunction : IFunction
{
return FuncFactory.Create<TFunction>();
}
}
public class Startup : IStartup
{
private IConfiguration Configuration { get; }
public Startup()
{
Configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
}
public IServiceCollection ConfigureServices(IServiceCollection services)
{
services
.AddSingleton<IThingService, ThingService>()
.AddTransient<IGetThingsFunction, GetThings>();
return services;
}
}
}
}
如何从 ThingService 或 GetThings 函数中访问 Configuration 中的值?
不相关,但仅供参考,我已经添加了我自己对 DI 的支持(代码未显示) - 因此是 .AddSingleton 等。
谢谢!
【问题讨论】:
-
只需使用您的
Configuration(将其传递到正确的位置)?有什么问题? -
嗨,这是一个很好的观点 - 但是据我所知,在网络应用程序中,配置是注入的(所以像构造函数中的 IConfig 一样),这将是更可取的。我可能是错的......
标签: c# azure configuration azure-functions