HTML 애자 팩을 사용하여 HTML 문서를 구문 분석하고 노드를 변경 한 다음 HTML 문서를 저장합니다. 문서를 메모리에 저장하여 나중에 HTML을 응용 프로그램의 문자열로 쓸 수 있습니다. 현재 구현은 항상 문자열 == ""을 반환합니다. 디버깅 할 때 HtmlDocument 객체가 비어 있지 않음을 알 수 있습니다. 누군가 통찰력을 제공 할 수 있습니까?
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();
}
시험
memoryStream.Seek(0, System.IO.SeekOrigin.Begin)
StreamReader
작성하고 ReadToEnd()
호출하기 전에,
스트림 포인터가 가능성으로 스트림의 마지막에 남겨지고 Save
당신이 호출 할 때 그러므로 - 방법 (경우에 당신이 스트림에 더 많은 데이터를 추가 할 그것은 가장 좋은 방법은 구성 요소가이 작업을 수행하기위한거야) ReadToEnd
, 그것은에서 이미 끝이고 아무 것도 읽히지 않습니다.