Я хочу создать консольное приложение .NET Core 2.2
, которое читает из Azure Service Bus Queue
.Сообщения помещаются в очередь экземпляром CRM 2016
.План состоит в том, чтобы использовать очередь для уведомления внешних устройств о создании и / или обновлении сущностей.
Я могу читать из очереди без проблем, используя следующий пример кода.
var queueClient = new QueueClient(serviceBusConnectionString, queueName);
...
var messageHandlerOptions = new MessageHandlerOptions(this.ExceptionReceivedHandler) {
MaxConcurrentCalls = 1,
AutoComplete = false
};
queueClient.RegisterMessageHandler(this.ProcessMessagesAsync, messageHandlerOptions);
...
protected async Task ProcessMessagesAsync(Message message, CancellationToken token) {
// do something ??? with message body
byte[] body = message.Body;
await queueClient.CompleteAsync(message.SystemProperties.LockToken);
}
У меня нет проблем с чтением из очереди и получением сообщения , но я не уверен, что делать дальше .Кажется, что вся найденная мной документация примеров работает со старой версией библиотеки Azure Bus и .NET Framework
.
Как только я получу свойство Body
, что мне с ним делать?Я предполагаю, что мне нужно десериализовать или привести его как класс, но какой класс?
Примеры на этом сайте (https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/sample-one-way-listener) имеют дело со старой библиотекой (https://www.nuget.org/packages/WindowsAzure.ServiceBus/). Примеры включают ссылкипо RemoteExecutionContext
, BrokeredMessage
(вместе с методом GetBody()
), который, кажется, не применяется к более новой библиотеке.
Примеры на этом сайте (https://github.com/Azure/azure-service-bus/tree/master/samples) относятся к шине Azure вобщие и не имеют отношения к CRM
.
Использую ли я правильную библиотеку? Разве я не использую Core? Может кто-нибудь указать мне на пример кода, который выполняется в .NET Core
и взаимодействует с очередями и CRM?