2015-11-02 38 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來獲取名稱。

相關問題