2

最近我遇到了一个非常奇怪的 C# 字符串问题。我尝试到处搜索,但找不到解决方案。如果这个问题太简单,请耐心等待,因为我对 C# 很陌生。

我使用 ac# 字符串变量来保存来自 webbrowser 的 html 文本。

string webresult = webBrowser1.DocumentText;

不知何故,它只保存了 html 文本的前 4096 个字节。我用 :

Console.Out.WriteLine (webresult.Length);

控制台的输出是 4096。

但是如果我将它转储到一个文件中,html 文件的所有其余部分都会输出正常。

FileStream fileStream = new FileStream(@"web.html", FileMode.OpenOrCreate, FileAccess.Write);
try
{
    // read from file or write to file
    StreamWriter m_streamWriter = new StreamWriter(fileStream);                
    m_streamWriter.WriteLine("{0}", str);
    m_streamWriter.Flush();
}
finally
{
    fileStream.Close();
}

有人可以帮忙解决这个问题吗?谢谢

4

2 回答 2

1

我相信 4096 字符限制与 http 调用有关,因此我将对此进行进一步调查。

于 2012-12-11T06:36:43.340 回答
0

这听起来就像当您获取 DocumentText 时页面尚未完全加载。我认为 WebBrowser 在加载完成时会引发一个事件(DocumentCompleted)。您应该在该事件的处理程序中进行文本转储。

于 2012-12-11T02:43:28.540 回答