내가 만든 것처럼 느껴집니다. 백 개의 비 직렬화 루틴을 작성했지만,이 하나가 나를 죽이고있다!C에서 xmlSerializer를 사용하여 매우 간단한 xml을 비 직렬화 할 수 없습니다. #
다음은 서비스에서 반환 한 것입니다. 문자열의 아주 간단한 배열 ... 나는 생각한다. 내가 역 직렬화 상자를 사용하고
<ArrayOfstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<string>Action & Adventure</string>
<string>Comedy</string>
<string>Drama</string>
<string>Family</string>
<string>Horror</string>
<string>Independent & World</string>
<string>Romance</string>
<string>Sci-Fi/Fantasy</string>
<string>Thriller & Crime</string>
</ArrayOfstring>
var serializer = new XmlSerializer(typeof(List<string>));
var reader = new StringReader(xmlString);
var GenreList = (List<string>)serializer.Deserialize(reader);
하지만 난 역 직렬화 줄에 다음 오류가 얻을 :
<ArrayOfstring xmlns='http://schemas.microsoft.com/2003/10/Serialization/Arrays'> was not expected
나는 네임 스페이스를 포함하고 모든 방법을 만드는 시도 이국적인 물건을 작동 시키려고 시도했다. 미친 시간. 결국 나는 JSON에서 요청하고 그것을 Json.net과 deserialised했다.
그러나 내가 잘못한 것을 궁금해합니다!
-1 '은 XML은 시리얼이하는 SimpleType 또는 단순 types'의 목록 나는 그렇게 확신 말할 것을 역 직렬화 할 수없는 작동하는 XmlSerializer를 만드는 것입니다. (BTW : 내 downvote는 미래의 독자에 관한 허위 진술만을 위해, 당신이 그것을 제거하고 DataContractReader 만 설명하면 내 downvote를 취소 할 것입니다) – I4V
성명을 업데이트했습니다. 루트 요소를 추가하지 않고 네임 스페이스 또는 다른 '트릭'을 지정하지 않으면 그렇지 않습니다. – jessehouwing
어디에서 DataContractSerializer를 찾을 수 있습니까? – ecoe