C# 在PipeReader中查找字节[]
C# 在PipeReader中查找字节[],c#,C#,PipeReader.ReadAsync返回一个ReadResult对象,该对象又包含一个Buffer属性,该属性返回一个ReadOnlySequence对象 这些数据将用于解析来自设备的消息,每条消息都有一个标头,该标头将与缓冲区中的字节相匹配,以了解消息从何处开始,以及创建何种类型来解析消息本身 问题是,似乎没有任何好的方法可以从只读序列中实现这一点,而且关于它的信息也不多 可以枚举字节(它有一个GetEnumerator),但在枚举之后,我必须手动跟踪用于知道缓冲区中位置的字节 还有一个
PipeReader.ReadAsync
返回一个ReadResult
对象,该对象又包含一个Buffer
属性,该属性返回一个ReadOnlySequence
对象
这些数据将用于解析来自设备的消息,每条消息都有一个标头,该标头将与缓冲区中的字节相匹配,以了解消息从何处开始,以及创建何种类型来解析消息本身
问题是,似乎没有任何好的方法可以从只读序列
中实现这一点,而且关于它的信息也不多
- 可以枚举字节(它有一个
),但在枚举之后,我必须手动跟踪用于知道缓冲区中位置的字节GetEnumerator
- 还有一个
扩展名,但是它可以找到一个字节的位置,所以它看起来并不比检查循环中的每个字节有多大优势PositionOf
有没有我缺少的扩展方法?这完全是以另一种方式完成的吗?一个可行的解决方案是复制修改后的扩展PositionOf和PositionOf multisegment in出于好奇,您提到“数据将用于解析来自设备的消息”您是如何接收该数据的?通过插座?或者其他方式?目前是通过串行端口,但通常这些设备也至少支持telnet/raw tcp