2010-08-12 4 views
0

Silverlight에서 객체를 직렬화 및 비 직렬화하려고하지만 작동하지 않는 것처럼 보입니다. 일련 화는 잘 작동하지만 내 rootObject가 예상치 못한 것에 대해 불평합니다. XML을 생성 한 Silverlight이기 때문에 이해가 가지 않습니다.직렬화 된 데이터의 직렬화가 실패합니다. 이유는 무엇입니까?

btw; 나는 그것이 생산하고 역 직렬화 할 때,

<?xml version="1.0" encoding="utf-8"?> 
<DataStorage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <type>default</type> 
    <children /> 
</DataStorage> 

을하지만 : Silverlight에서 직렬화 할 때

[XmlRoot("DataStorage")] // has no effect 
public class DataStorage 
{ 
    public string type { get; set; } 
    public string imgUrl { get; set; } 
    public List<AbstractionObject> children { get; set; } 

    public DataStorage() 
    { 
     type = "default"; 
     children = new List<AbstractionObject>(); 
    } 
} 

그것이 생산 : 난 아직도 내가처럼 보이는 클래스가 C#

에 새로운 해요 :

사용자 코드에서 System.InvalidOperationException 처리되지 않았습니다. 메시지 = XML 문서 (2, 2)에 오류가 있습니다.

InnerException : System.InvalidOperationException 메시지 = <DataStorage xmlns=''>이 (가) 필요하지 않습니다.

// create the xmlSerializer for DataObject 
XmlSerializer xmlSerializer = new XmlSerializer(typeof(DataObject)); 

// Open the file again for reading. 
StreamReader fileStream = new StreamReader(isoStore.OpenFile("IsoStoreFile.xml", FileMode.Open)); 
XmlReader xmlReader = XmlReader.Create(fileStream); 

DataObject deserializedObject = (DataObject)xmlSerializer.Deserialize(xmlReader); 
fileStream.Close(); 

Debug.WriteLine(deserializedObject); 

어떤 생각을 다음과 같이

내 직렬화 코드는?

답변

0

예제에서 오타가 될 수 있는지 모르겠지만 첫 번째 블록에서 정의한 클래스는 "DataStorage"이고 직렬화 및 비 직렬화는 이유를 설명 할 수 있습니다 그것은 "DataStorage"를 만났을 때 부서지고 있습니다.

관련 문제