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。非常感谢。非常感谢。