我正在构建一个Azure Http触发的C#函数,其输出绑定到Cosmos DB。我的函数定义是这样的:
[FunctionName("HttpTriggerFunction")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = "myroute")]HttpRequestMessage req,
[DocumentDB("database", "collection", ConnectionStringSetting = "CosmosDBConnection")] IAsyncCollector<dynamic> document,
TraceWriter log)
这很好用。
但是,我希望能够在DocumentDB属性中配置数据库和集合名称,但是如果我尝试这样的话:
[DocumentDB(ConfigurationManager.AppSettings["DatabaseName"], ConfigurationManager.AppSettings["CollectionName"], ConnectionStringSetting = "CosmosDBConnection")]
然后Visual Studio给我一个编译错误:
CS0182属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式
有没有办法配置这些DocumentDB属性参数?
答案 0 :(得分:7)
你需要这样做:
[DocumentDB("%database%", "%collection%", ConnectionStringSetting = "CosmosDBConnection")]
然后使用相应的名称定义设置(不含%
)。