我有一个C#WebJob,它QueueTrigger
与自定义项INameResolver
一起使用以从应用程序设置中查找队列名称。这部分工作正常,但是现在在方法主体中,我需要知道从中接收触发消息的队列的名称。理想情况下,我只想在我的方法上添加一个特殊命名的字符串参数,该变量将由WebJobs SDK填充触发队列名称,但是文档中没有提及任何此类可绑定参数。
是否有另一种方法可以实现此目的,而不是在两个位置(即,一次在QueueTrigger
属性中,再一次在方法体内部)对队列名称/模式进行硬编码,或者编写自定义字符串分析代码以手动调用INameResolver
for for %patterns%
?
您可以在函数中添加一个附加参数以绑定到队列,如下所示:
public static void MyFunction(
[QueueTrigger("%name%")] string message,
[Queue("%name%")] CloudQueue queue)
{
string queueName = queue.Name;
}
如您所建议的那样,一种替代方法-使您的自定义INameResolver实例可用于您的作业函数(例如,通过DI),然后只需调用resolver.Resolve即可获取名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句