繁体   English   中英

对具有多个对象的.NET流进行反序列化

[英]Deserializing .NET stream with multiple objects

我有一个MemoryStream,当我从网络上接收数据时,我会写入其中。 由于数据可以分解,因此流中可能会存储部分消息或多条消息。 反序列化时,我将指针放回流的开头,并尝试反序列化我的一类。 我将反序列化包装在try catch块中,但进入反序列化行,应用程序退出了(没有异常,该函数中没有更多行在运行,等等)。

我有多个问题:

  1. 从网络接收可能不完整的XML数据流的最佳方法是什么,如果可以,则可能有或没有多个消息?
  2. 解串器是否需要了解有关在MemoryStream中解码XML的编码?
  3. 反序列化是否将流指针放在反序列化的对象之后?
  4. 您可以在单个流中反序列化多个对象吗?

1)您可以利用XmlReader类,它“提供对XML数据流的只读,只读访问”。 这可以帮助您转换可能不完整的xml数据。 http://msdn.microsoft.com/en-us/library/vstudio/system.xml.xmlreader

2)如果您指的是混合ASCII,UTF-8等,那么可以,否则我不确定问题是什么。

3)这取决于您使用的解串器。

4)是的,使用XMlReader类,您可以巧妙地提取属性和xml片段以供以后使用(尽管解决方案并不优雅,而且很难看)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM