학교에서 나에게 XML 문서를 주었고 그 정보를 화면에 표시해야합니다. 지금까지 내가 아는 한, XML 직렬화가 가장 쉽고/좋은 해결책 일 것입니다.C# XML 역 직렬화 오류 (2,2)
public static List<Project> ProjectListDeserialize(string path)
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Project>));
Stream filestream = new FileStream(path, FileMode.Open);
return (List<Project>)serializer.Deserialize(filestream);
}
public static Projects ProjectsDeserialize(string path)
{
XmlSerializer serializer = new XmlSerializer(typeof(Projects));
Stream filestream = new FileStream(path, FileMode.Open);
return (Projects)serializer.Deserialize(filestream);
}
을 그리고이 같은 XML 문서 모습입니다 :
나는 지금까지이
<Projects xmlns='http://www.pulse.nl/DynamicsAX/2009/DataSets was not expected
방법 :
<?xml version="1.0" encoding="utf-16" ?>
<Projects xmlns="http://www.pulse.nl/DynamicsAX/2009/DataSets" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Project ID ="1000.0001" CustomerID="1000">
<Name>Project data key performance indicators</Name>
<Status>WorkInProgress</Status>
<StartDate>2011-01-01</StartDate>
<ExpectedCompletionDate>2011-08-01</ExpectedCompletionDate>
<CompletionDate xsi:nil="true" />
</Project>
<Project ID ="1000.0008" CustomerID="1000" ParentID="1000.0001">
<Name>Implementation</Name>
<Status>WaitListed</Status>
<StartDate>2011-06-01</StartDate>
<ExpectedCompletionDate>2011-08-01</ExpectedCompletionDate>
<CompletionDate xsi:nil="true" />
</Project>
</Projects>
두 가지 방법이 같은 예외를 던지고있다 위의 XML을 올바르게 deserialize 할 수 있습니까? 모든 샘플이 도움이 될 것입니다!
당신은 프로젝트/s의 클래스 정의에 네임 스페이스를 정의 했습니까? – mmix
Projects 요소에서 xmlns를 제거해야합니다. 또는 사용자 정의 직렬 변환기를 작성하십시오. 또는 .NET SDK의 xsd 도구를 사용하여 해당 Xml 형식과 호환되는 C# 클래스를 생성하십시오. –