Visual Studio 开发MQTT遇到无法从“System.ArraySegment”转换为“byte[]”错误的处理方法
在处理收到的消息时需要用到Encoding.UTF8.GetString方法来吧payload转换成string格式,老版本使用的是:Encoding.UTF8.GetString(arg.ApplicationMessage.Payload),参数,但是会提示“已过时”的语法:
新的语法是使用:Encoding.UTF8.GetString(arg.ApplicationMessage.PayloadSegment);参数,但是会提示“无法从“System.ArraySegment”转换为“byte[]””错误:
经过反复实验最终发现可以改为:
Encoding.UTF8.GetString(arg.ApplicationMessage.PayloadSegment.Array);问题解决,
运行时监控发现其实arg.ApplicationMessage.Payload中的内容和arg.ApplicationMessage.PayloadSegment.Array中的内容是一样的。