它是否可以在不依赖azure webjobs的情况下使用IAsyncCollector?

它是否可以在不依赖azure webjobs的情况下使用IAsyncCollector?,azure,azure-functions,azure-webjobssdk,Azure,Azure Functions,Azure Webjobssdk,我正在编写一个包含各种业务逻辑的库,并希望它能够与azure函数接口。我想为我的代码希望生成的通知接收一个消息接收器,而IAsyncCollector似乎是一个合理的接口(它有一个非常简单的2函数调用接口定义),它也可以在azure函数应用程序调用中简单地提供给我 我正在编写的库是否可以接受iAsyncCollector,而不必将所有azure webjobs添加为我的库对这一接口的依赖项 或者,内部代码是否应该只生成消息,并将它们返回到主机以添加到收集器,即使这是需要将每个函数调用包装在“fo

我正在编写一个包含各种业务逻辑的库,并希望它能够与azure函数接口。我想为我的代码希望生成的通知接收一个消息接收器,而IAsyncCollector似乎是一个合理的接口(它有一个非常简单的2函数调用接口定义),它也可以在azure函数应用程序调用中简单地提供给我

我正在编写的库是否可以接受iAsyncCollector,而不必将所有azure webjobs添加为我的库对这一接口的依赖项

或者,内部代码是否应该只生成消息,并将它们返回到主机以添加到收集器,即使这是需要将每个函数调用包装在“foreach”中的凌乱代码


假设如果有多条消息,您希望获得一个消息收集器。但是,我不知道为什么要使用
IAsyncCollector
,因为关于此类型的描述是只写集合,您可以检查文档:

如果您不想使用webjob sdk,这意味着您无法使用存储绑定,并且您仍然希望对多条消息执行操作:

接收消息,使用方法,它将返回可枚举的消息集合

发送消息,只需使用列表,然后循环列表并执行添加操作,或者只需绑定
CloudQueue
类型并使用
AddMessage
方法

            CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
            CloudQueue queue1 = queueClient.GetQueueReference("myqueue");
            CloudQueue queue2 = queueClient.GetQueueReference("queue1");
            IEnumerable<CloudQueueMessage> messages= queue1.GetMessages(10);
            List<CloudQueueMessage> messages1=new List<CloudQueueMessage>();
            foreach (var message in messages) {
                Console.WriteLine(message.AsString);
                messages1.Add(message);
            }
            foreach (var message in messages1) {
                queue2.AddMessage(message);
            }
CloudQueueClient=storageAccount.CreateCloudQueueClient();
CloudQueue queue1=queueClient.GetQueueReference(“myqueue”);
CloudQueue queue2=queueClient.GetQueueReference(“queue1”);
IEnumerable messages=queue1.GetMessages(10);
列表消息1=新列表();
foreach(消息中的var消息){
Console.WriteLine(message.AsString);
messages1.添加(message);
}
foreach(messages1中的var消息){
queue2.AddMessage(消息);
}

希望这能对您有所帮助,如果您在使用IAsyncCollector方面还有其他问题,请告诉我。

如果有多条消息,请使用消息收集器。但是,我不知道为什么要使用
IAsyncCollector
,因为关于此类型的描述是只写集合,您可以检查文档:

如果您不想使用webjob sdk,这意味着您无法使用存储绑定,并且您仍然希望对多条消息执行操作:

接收消息,使用方法,它将返回可枚举的消息集合

发送消息,只需使用列表,然后循环列表并执行添加操作,或者只需绑定
CloudQueue
类型并使用
AddMessage
方法

            CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
            CloudQueue queue1 = queueClient.GetQueueReference("myqueue");
            CloudQueue queue2 = queueClient.GetQueueReference("queue1");
            IEnumerable<CloudQueueMessage> messages= queue1.GetMessages(10);
            List<CloudQueueMessage> messages1=new List<CloudQueueMessage>();
            foreach (var message in messages) {
                Console.WriteLine(message.AsString);
                messages1.Add(message);
            }
            foreach (var message in messages1) {
                queue2.AddMessage(message);
            }
CloudQueueClient=storageAccount.CreateCloudQueueClient();
CloudQueue queue1=queueClient.GetQueueReference(“myqueue”);
CloudQueue queue2=queueClient.GetQueueReference(“queue1”);
IEnumerable messages=queue1.GetMessages(10);
列表消息1=新列表();
foreach(消息中的var消息){
Console.WriteLine(message.AsString);
messages1.添加(message);
}
foreach(messages1中的var消息){
queue2.AddMessage(消息);
}

希望这能对您有所帮助,如果您在使用IAsyncCollector方面还有其他问题,请告诉我。

是的,我确实需要只写的集合,以便我的库可以生成一些输出,并且库的用户可以选择输出的位置。目前,我的库可以在几个与azure无关的地方使用,因此我不希望仅为1接口添加azure依赖项。假设目前没有方法直接发送消息,您必须包装一个类来实现它。如果这对您有帮助,您可以接受它作为答案。是的,我确实想要只写的集合,这样我的库可以生成一些输出,并且库的用户可以选择输出的位置。目前,我的库可以在几个与azure无关的地方使用,因此我不希望仅为1接口添加azure依赖项。假设目前没有方法直接发送消息,您必须包装一个类来实现它。如果这对你有帮助,你可以接受它作为答案。