Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 刚刚序列化的数据的反序列化失败,为什么?_C#_Silverlight_Xml Deserialization - Fatal编程技术网

C# 刚刚序列化的数据的反序列化失败,为什么?

C# 刚刚序列化的数据的反序列化失败,为什么?,c#,silverlight,xml-deserialization,C#,Silverlight,Xml Deserialization,我试图在silverlight中序列化和反序列化对象,但似乎无法使其正常工作。序列化工作得很好,但它抱怨我的rootObject没有被期望。我不明白,因为是Silverlight生成了XML 顺便说一句;我对C还是新手# 我有一个类,看起来像: [XmlRoot("DataStorage")] // has no effect public class DataStorage { public string type { get; set; } public string img

我试图在silverlight中序列化和反序列化对象,但似乎无法使其正常工作。序列化工作得很好,但它抱怨我的rootObject没有被期望。我不明白,因为是Silverlight生成了XML

顺便说一句;我对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>();
    }
}

有什么想法吗?

我不知道这在您的示例中是否只是一个输入错误,但是您在第一个块中定义的类是“DataStorage”,您正在序列化和反序列化一个“DataObject”,这可以解释为什么它遇到“DataStorage”时会崩溃

<?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>
// 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);