rabbitMQ中将ReadOnlyMemory转换为byte []

rabbitmq - C#将ReadOnlyMemory转换为byte []

发布于 2020-07-31 11:16:05

给定ReadOnlyMemory结构,我想将流转换为字符串

我有以下代码:

var body = ea.Body; //ea.Body is of Type ReadOnlyMemory<byte>
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);

并且它给出以下错误。我正在将最新的C#与.NET CORE 3.1一起使用

 

 

您不能将只读的内容放入类型为的插槽中byte[],因为byte[]s是可写的,并且会破坏目的。看来RabbitMQ 在2月更改了API,也许忘记了更新示例代码。

一个快速的解决方法是使用.ToArray()

var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);

编辑:由于已被接受,因此我将使用Dmitry和zenseb提出的更好的解决方案对其进行修改.Span

var body = ea.Body.Span;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
posted @   .net&new  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
历史上的今天:
2021-09-19 mysql 数据库存储引擎
2021-09-19 安装mysql8.0
点击右上角即可分享
微信分享提示