C#字符串4096限制?

C#字符串4096限制?,c#,string,C#,String,最近我遇到了一个非常奇怪的C#字符串问题。我试着到处找,但找不到解决办法。如果这个问题太简单,请耐心听我说,因为我对C#很陌生 我使用了一个c#string变量来保存webbrowser中的html文本 string webresult = webBrowser1.DocumentText; 不知何故,它只保存html文本的前4096个字节。 我使用: 控制台的输出是4096 但如果我将其转储到一个文件中,html文件的所有其余部分都将正常输出 FileStream fileStream =

最近我遇到了一个非常奇怪的C#字符串问题。我试着到处找,但找不到解决办法。如果这个问题太简单,请耐心听我说,因为我对C#很陌生

我使用了一个c#string变量来保存webbrowser中的html文本

string webresult = webBrowser1.DocumentText;
不知何故,它只保存html文本的前4096个字节。 我使用:

控制台的输出是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();
}

有人能帮我解决这个问题吗?谢谢

这听起来像是当你收到文档文本时,页面还没有完全加载。我认为WebBrowser在加载完成时会抛出一个事件(
DocumentCompleted
)。您应该在该事件的处理程序中进行文本转储。

我认为4096个字符的限制与http调用有关,因此我将对此进行进一步研究。

这不是C或.NET字符串长度的限制。什么变化?它被转储到何处或如何读取。web.html的字节大小是多少?(如果这是专门关于WebBrowserControl.DocumentText的,请将其标记为这样)。为什么文本中的变量称为“webresult”,而代码段中的变量称为“str”?显然,这需要一个更好的代码片段。web.html大约是900k。变量在代码段中称为str,因为它位于另一个函数中。谢谢,已经完成了。私有无效webBrowser1_DocumentCompleted(对象发送者,WebBrowserDocumentCompletedEventArgs e){System.Windows.Forms.HtmlDocument Document=webBrowser1.Document;字符串webresult=webBrowser1.DocumentText;Console.Out.WriteLine(webresult.Length);
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();
}