Вы не можете поместить вещь, предназначенную только для чтения, в слот с типом byte[]
, потому что byte[]
s доступны для записи, и это может нанести ущерб цели. Похоже, что RabbitMQ изменил свой API в феврале и, возможно, забыл обновить пример кода.
Быстрый обходной путь - использовать .ToArray()
:
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
Редактировать : Поскольку это было принято, я дополню его лучшим решением, предложенным Дмитрием и Зенсебом, которое должно использовать .Span
:
var body = ea.Body.Span;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);