'SubscriptionClient'不包含'PeekBatch'和ReceiveBatch的定义

问题描述

我有一个netstandard2.1应用程序,并且我正在使用nuget软件包"Microsoft.Azure.ServiceBus" Version="4.1.1"

我正在创建天蓝色的服务总线SubscriptionClient,并尝试使用PeekBatchReceiveBatch,但是我遇到了麻烦,这里缺少什么?

'SubscriptionClient'不包含'PeekBatch'的定义,找不到可访问的扩展方法'PeekBatch'接受类型为'SubscriptionClient'的第一个参数

'SubscriptionClient'不包含'ReceiveBatch'的定义,找不到可以接受的扩展方法'PeekBatch'接受类型为'SubscriptionClient'的第一个参数

 _subscriptionClient = new SubscriptionClient(connectionString,topicName,subscriptionName,ReceiveMode.ReceiveAndDelete);
            
            _subscriptionClient.PrefetchCount = 16;

            while (_subscriptionClient.PeekBatch(16).Any())
            {
                var pendingMessages = _subscriptionClient.ReceiveBatch(16,TimeSpan.FromSeconds(1))?.ToList();
                if (pendingMessages != null)
                {
                    foreach (var message in pendingMessages)
                    {
                        // do processing of the message
                    }
                }
            }

解决方法

目前无法从.net标准或核心使用批处理方法和预取。

在此处查看文档:{​​{3}}

预取

本节仅适用于WindowsAzure.ServiceBus SDK,因为Microsoft.Azure.ServiceBus SDK不公开批处理功能。

请注意,WindowsAzure在这里:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-performance-improvements?tabs=net-standard-sdk#prefetching-and-receivebatch

请注意,此程序包至少需要.Net Framework 4.6.2。

仅.net,不支持网络核心或网络标准

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...