代码之家  ›  专栏  ›  技术社区  ›  NoWar

从MemoryStream反序列化问题

  •  1
  • NoWar  · 技术社区  · 13 年前

    我需要帮助来弄清楚如何从 MemoryStream .

    var xmlStream = new MemoryStream();
    e.Extract(xmlStream);
    
    if (xmlStream != null)
    {
        TextReader tr = new StreamReader(xmlStream);
        var contentItems = new ContentItems();
        var serializer = new XmlSerializer(typeof(ContentItems));
        contentItems = (ContentItems)serializer.Deserialize(tr); // Error is here
    
    1 回复  |  直到 13 年前
        1
  •  3
  •   NoWar    13 年前

    我找到了解决方案

    我们应该加上

     xmlStream.Seek(0, SeekOrigin.Begin);
    

    所以最后的代码看起来像

    var xmlStream = new MemoryStream();
    e.Extract(xmlStream);
    
    if (xmlStream != null)
    {
        xmlStream.Seek(0, SeekOrigin.Begin);
        var contentItems = new ContentItems();
        var serializer = new XmlSerializer(typeof(ContentItems));
        contentItems = (ContentItems)serializer.Deserialize(xmlStream); // NO ERROR
    
    推荐文章