0
我想序列化和反序列化Silverlight中的对象,但似乎无法让它工作。序列化工作正常,但它抱怨我的rootObject不被期望。我不明白,因为它是生成XML的Silverlight。只是序列化数据的反序列化失败,为什么?
Btw;我还是新的C#
我有一个类,它看起来像:
[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>();
}
}
当Silverlight的连载它产生:
<?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>
然而,当我试图反序列化生产:
System.InvalidOperationException未被用户代码处理 消息= XML文档(2,2)中存在错误。
InnerException:System.InvalidOperationException Message = <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);
任何想法?