많은 ListView가 있습니다. 17 번째 지점에있는 것이 무엇이든간에 항상 깨집니다 (ObjectDisposedException "닫힌 TextReader에서 읽을 수 없음"). 1에서 16까지는 물론 18에서 24까지 잘 작동합니다. x가 17에서 16으로 이동하면 다시 작동하지만 17 일에 새 휴식이 발생합니다. 내 코드는 특정 장소를 언급하지 않습니다.C# XMLReader 이상한 17 번째 위치가 닫힙니다. XMLReader 버그
는 XML 파일 형식
<Profiles>
<Profile name="a" type="A">
<ListOne>1,2,3,4,5,6,7,8</ListOne>
<ListTwo>1,2,3,4,5,6,7,8</ListTwo>
</Profile>
<Profile name="b" type="B">
...
...
</Profiles>
코드는 간단하다에게 다음과 같다. 나는 내가 관심이있는 프로필을 발견하고 하위 트리로
string CurrentProfile = "";
using (StreamReader SR = new StreamReader(MyXMLFilePath))
{
XmlTextReader TR = new XmlTextReader(SR);
do
{
TR.ReadToFollowing("Profile");
TR.MoveToFirstAttribute();
CurrentName = TR.Value;
TR.MoveToNextAttribute();
string CurrentType = TR.Value;
if (CurrentName == MyName && CurrentType == MyType)
{
TR.MoveToElement();
XmlReader subtree = TR.ReadSubtree();
return subtree;
}
}
while (CurrentName != "");
}
을 반환하는 방법을 그리고 난 하위 트리에서 목록 1과 2를 꺼내서 방법이있다.
if(subtree != null)
{
subtree.ReadToFollowing("ListOne");
subtree.Read();
string[] ListOneArray = subtree.Value.Split(',');
subtree.ReadToFollowing("ListTwo");
subtree.Read();
string[] ListTwoArray = subtree.Value.Split(',');
}
여기에는 문제가 발생합니다. ObjectDisposedException 닫은 TextReader로부터 읽을 수 없습니다. subtree.ReadToFollowing ("ListTwo")하지만 XML 목록의 17 번째 프로필을 선택하는 경우에만 항상 중단됩니다. 나는 어느 시점에서든 내가 어떻게 문서 판독기를 닫고 있는지 보지 못한다. 또한 프로필 18, 19, 20 및 1 ~ 16에서 작동하지만 위치에 관계없이 항상 위치 17에서 중단됩니다. 17 번 지점이 다른 지점과 다른 점은 없습니다.
도와주세요.
확인해 보겠습니다. 대부분의 프로필에서 항상 작동하는 이유는 알 수 있습니까?하지만 그 중 하나만 사용할 수는 없습니까? – xwiz