¿Cómo puedo guardar el documento HTML en la memoria? Paquete de agilidad de HTML

c# html-agility-pack

Pregunta

Estoy utilizando HTML Agility Pack para analizar y documentar HTML, hacer un cambio en un nodo y luego guardar el documento HTML. Me gustaría guardar el documento en la memoria para poder escribir el HTML como una cadena más adelante en la aplicación. Mi implementación actual siempre devuelve una cadena == "". Puedo ver que el objeto HtmlDocument no está vacío cuando se está depurando. ¿Alguien puede proporcionar alguna idea?

private string InitializeHtml(HtmlDocument htmlDocument)
    {
        string currentUserName = User.Identity.Name;
        HtmlNode scriptTag = htmlDocument.DocumentNode.SelectSingleNode("//script[@id ='HwInitialize']");
        scriptTag.InnerHtml = 
            string.Format("org.myorg.application = {{}}; org.myorg.application.init ={{uid:\"{0}\", application:\"testPortal\"}};",currentUserName);

        MemoryStream memoryStream = new MemoryStream();
        htmlDocument.Save(memoryStream);
        StreamReader streamReader = new StreamReader(memoryStream);
        return streamReader.ReadToEnd();
    }

Respuesta aceptada

Tratar

memoryStream.Seek(0, System.IO.SeekOrigin.Begin)

Antes de crear el StreamReader y llamar a ReadToEnd()

Es probable que el puntero de la secuencia se quede al final de la secuencia con el método Save (es recomendable que un componente haga esto, en caso de que desee agregar más datos a la secuencia), por lo tanto, cuando llama a ReadToEnd , ya está en la Fin y nada se lee.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué