2015-11-02 39 views
1

我有一个C#WebJob,它使用QueueTrigger和自定义INameResolver从应用程序设置中查找队列名称。这部分按预期工作,但现在在方法体内,我需要知道收到触发消息的队列的名称。理想情况下,我希望能够在我的方法中添加一个特殊名称的字符串参数,该参数将由WebJobs SDK填充触发队列名称,但documentation未提及任何此类可绑定参数。如何在运行时获取触发队列的名称?

有另一种方式来做到这一点,preferrably没有(在QueueTrigger属性,即一次又一次的方法体中)在两个位置硬编码队列名称/模式或编写自定义字符串解析代码手动调用我INameResolver%patterns%

回答

2

你可以额外的参数添加到您的功能结合到队列,像这样:

public static void MyFunction(
 
    [QueueTrigger("%name%")] string message, 
 
    [Queue("%name%")] CloudQueue queue) 
 
{ 
 
    string queueName = queue.Name; 
 
}

另一种是如你所说 - 让您定制INameResolver实例来你的工作函数(例如通过DI)并调用resolver.Resolve来获取名称。

相关问题