C# 读取值以外的其他部分中的设置

C# 读取值以外的其他部分中的设置,c#,azure,azure-functions,C#,Azure,Azure Functions,我有以下设置文件: { "IsEncrypted": false, "Values": { "UniquePermisionsQueueConnStr": "xx", "UniquePermisionsQueueName": "spo-unique-permissions-reporting", "AzureWebJobsStorage": "UseDevelopmentStorage=true", "AzureWebJobsDashboard": "Us

我有以下设置文件:

{
  "IsEncrypted": false,
  "Values": {
    "UniquePermisionsQueueConnStr": "xx",
    "UniquePermisionsQueueName": "spo-unique-permissions-reporting",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true"
  },
  "CosmosDB": {
    "UniquePermisionsQueueConnStr": "xx"
  }
}
我可以使用ConfigurationManager.AppSettings[UniquePermissionSqueueName]读取值部分中的设置,而无需任何道具;或环境

但是,如何获取CosmosDB部分中的值?我尝试了ConfigurationManager.AppSettings[CosmosDB:UniquePermissionSqueueName],但没有成功。

Azure函数运行时只将值部分注入环境变量,因此其他部分没有任何结果

我们需要像往常一样读取Json文件。在函数方法签名中添加ExecutionContext上下文,然后尝试下面的代码

var r = new StreamReader(context.FunctionAppDirectory+"/local.settings.json");
var myJson = r.ReadToEnd();
dynamic config =  JsonConvert.DeserializeObject(myJson);
var cosmosDBSettings = config.CosmosDB as JObject;
var uniquePermisionsQueueConnStr = cosmosDBSettings.GetValue("UniquePermisionsQueueConnStr").ToString();

至于部署到Azure,local.settings.json用于本地开发人员,默认情况下不会上载到Azure。我们应该在.csprojr中删除Never。右键单击project并编辑.csproj。

非常感谢。非常感谢。