Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据未正确保存在内存流C中#_C#_File Io_Html Agility Pack - Fatal编程技术网

C# 数据未正确保存在内存流C中#

C# 数据未正确保存在内存流C中#,c#,file-io,html-agility-pack,C#,File Io,Html Agility Pack,我正在使用HtmlAgilityPack并将html文档保存在MemoryStream中: MemoryStream ms = new MemoryStream(); HtmlDocument doc = new HtmlDocument(); doc.load(path); . . doc.Save(ms); 现在的问题是,有时文档已完全保存,有时文档的某些内容(从结尾)丢失,它没有与文档一起保存。有人能告

我正在使用HtmlAgilityPack并将html文档保存在MemoryStream中:

       MemoryStream ms = new MemoryStream();
       HtmlDocument doc = new HtmlDocument();
       doc.load(path);
       . 
       .
       doc.Save(ms);

现在的问题是,有时文档已完全保存,有时文档的某些内容(从结尾)丢失,它没有与文档一起保存。有人能告诉我为什么会发生这种情况,我该如何解决

保存此文件后尝试添加

memoryStream.Seek(0, System.IO.SeekOrigin.Begin)
在处理流(或任何实现IDisPossible的东西)时,请确保高效地管理内存。Net垃圾收集可以在任何时候启动,并且结果可能是不可预测的

这有时与将变量包装在using()语句中一样简单:

        using(var ms = new MemoryStream()) {
            var doc = new HtmlDocument();
            doc.Load(path);
            doc.Save(ms);
        }

请发布一个简短但完整的程序来演示问题。GC可以随时启动;但是结果不会影响发布的代码。GC只收集不再使用的对象。“ms”最早要在调用save之后才会被收集——这不会造成任何像OP描述的问题。你是对的——我想我只是在抓救命稻草:)