首页 > 其他分享 >rabbitMQ中将ReadOnlyMemory转换为byte []

rabbitMQ中将ReadOnlyMemory转换为byte []

时间:2022-09-19 21:57:26浏览次数:83  
标签:body ea rabbitMQ ReadOnlyMemory var byte message

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);

标签:body,ea,rabbitMQ,ReadOnlyMemory,var,byte,message
From: https://www.cnblogs.com/wugh8726254/p/16709214.html

相关文章

  • RabbitMQ笔记
    1.RabbitMQ中间件1.1.什么是中间件什么是中间件我国企业从20世纪80年代开始就逐渐进行信息化建设,由于方法和体系的不成熟,以及企业业务的市场需求的不断变化,一个企业......
  • centos7安装rabbitmq-3.9.5单机部署
    资源下载地址:#erlang下载https://github.com/rabbitmq/erlang-rpm/releases/tag/v23.3.4.6#rabbitmq-server下载https://github.com/rabbitmq/rabbitmq-server/rele......
  • 实例-rust-string和bytes转换
    Cargo.toml[package]name="rust-example9"version="0.1.0"edition="2021"#Seemorekeysandtheirdefinitionsathttps://doc.rust-lang.org/cargo/refere......
  • RabbitMQ安装教程(linux与Docker)
    一.架构的演变过程  二.正确看待异步架构1.优势(1).削峰降低了服务器的压力(2).响应快加快了服务器的响应速度,优化了用户体验(3).降耦合降低了服务器之间......
  • RabbitMQ 生产者与消费者Code
    Nuget引入RabbitMQClient 消费者://Seehttps://aka.ms/new-console-templateformoreinformationusingRabbitMQ.Client;usingSystem.Text;Console.WriteLin......
  • idea 查看类的字节码信息( jclassLib Bytecode viewer插件、javap tools)
    idea查看类的字节码信息第一种方式:IntelliJIDEA--Preferences---Plugins安装插件:jclassLibBytecodeviewer第二种方式:IntelliJIDEA--Preferenc......
  • 033.byte[]与String互转不一致引起的bug
      1.结论​   Java中String内置的publicString(byte[]bytes)和publicbyte[]getBytes()对于不合法的utf-8字节流在解析时会增删字节。2.为什么会出现这样的......
  • rabbitmq 安装
    rabbitmq安装官网地址https://rabbitmq.com/download.html前言RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,即需要先安装部署Erlang环境再安装Rabbit......
  • rabbitmq消费(失败)重试3次(多次)
    方案一:spring提供的retry配置文件:server:port:8080spring:rabbitmq:host:xxx.xxx.xxx.xxxport:5672username:xxxxpassword:xxxpub......
  • .Net Core&RabbitMQ优先级队列
    优先级队列消息除了有生命周期长短,也有紧急与非紧急之分,承载了具有优先级消息的队列则为优先级队列。队列优先级设置为消息设置优先级前,队列需要先具备优先级的能力,队......