使用azure webjobs sdk,我想创建一个异步函数,它将接收servicebus队列输入并写入servicebus队列输出。异步方法不能有out参数,例如在blobstorage上,这些参数似乎是由流和文本编写器代替的。但是,当我尝试对servicebus参数执行相同操作时,会收到一个异常。
public static async void Transform(
[ServiceBusTrigger("%InputQueue%")] String input,
[ServiceBus("%OutputQueue%")] TextWriter output,
TextWriter log)
索引方法“filtercurrentcpestonewcpes”时出错
无法绑定SerieBUS来键入“Syt.IO .TeXTWrrter”。
我收到了一条类似的消息。
最佳答案
因为异步函数不能输出参数,所以可以绑定到ICollector<T>
或IAsyncCollector<T>
并执行Addio.()操作来发送消息。icollector在webjobs sdk中定义。
下面的示例演示了这一点。
public static async void Transform(
[ServiceBusTrigger("%InputQueue%")] string input,
[ServiceBus("%OutputQueue%")] IAsyncCollector<string> output,
TextWriter log)
{
await output.AddAsync(input);
}
关于c# - 我如何有一个异步功能写出到服务总线队列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26602490/