public override string ReadToEnd() {
char[] buffer = new char[100000]; // large block heap is more efficient
int len = 0;
StringBuilder sb = new StringBuilder();
while ((len = Read(buffer, 0, buffer.Length)) > 0) {
sb.Append(buffer, 0, len);
}
return sb.ToString();
}
protected override void Dispose(bool disposing)