Я выполняю миграцию функции Azure с v1 (.NET 4.7) на v2 (.NET Standard 2).В версии v1 я использовал некоторые статические переменные, которые я читал из конфига следующим образом, чтобы получить синглтон (клиента Cosmos DB)
private static string cosmosDbUri = ConfigurationManager.AppSettings["CosmosDb.Uri"];
//...
private static MyCosmosDbClient cosmosDbClient = new MyCosmosDbClient(cosmosDbUri, ...);
Для v2 я бы переключился на ConfigurationBuilder для моей конфигурации:
private static IConfigurationRoot config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
Теперь существует проблема, что для этого требуется ExecutionContext , который я получаю (или знаю, как получить) только при выполнении функции.
Итакмой вопрос, как справиться с этим лучше всего?Создайте метод Init(ExecutionContext context)
, который я бы вызвал, только если конфиг еще не загружен или есть лучшие способы сделать это?