使用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/

10-11 23:40