【发布时间】:2015-04-09 04:41:48
【问题描述】:
我需要帮助,我有一个 XML 文件,我已经在一个名为 Class 1 的类上序列化了该文件,其中包含另一个名为“服务”的类类型的列表 将列表序列化为 XML 文件后,我试图将文件反序列化回服务类型列表
这是 1 类代码:
public class Class1
{
public Class1()
{
ServiceList = new List<service>();
}
public List<service> ServiceList { get; set; }
}
public class service
{
public string ServiceName { get; set; }
public string Symbol { get; set; }
}
这是我的序列化代码:
var filestream = new FileStream("sth.xml", FileMode.Create);
new XmlSerializer(typeof(Class1)).Serialize(filestream,c);
filestream.Close();
这是 XML 数据:
<?xml version="1.0"?>
<Class1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ServiceList>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
<service>
<ServiceName>cool</ServiceName>
<Symbol>v</Symbol>
</service>
</ServiceList>
</Class1>
这是我的反序列化代码,它运行正常但没有给我正确的输出
XmlSerializer myDeserilizer = new XmlSerializer(typeof(List<service>) , new XmlRootAttribute("Class1"));
FileStream myfilestream = new FileStream("sth.xml", FileMode.Open);
var loadedData = (List<service>)myDeserilizer.Deserialize(myfilestream);
myfilestream.Close();
问题是在 DE 序列化后没有得到列表 有什么帮助吗??
【问题讨论】:
-
你试过 new XmlSerializer(typeof(Class1)) 吗?它应该工作
-
@Peyman 你的意思是在序列化代码中?
-
反序列化代码中没有,XmlSerializer myDeserilizer = new XmlSerializer(typeof(Class1))
-
@Peyman 我试过了,它给了我这个错误:无法将“WindowsFormsApplication4.Class1”类型的对象转换为“System.Collections.Generic.List`1[WindowsFormsApplication4.service]”。
-
试试我的答案,它应该可以工作
标签: c# asp.net xml serialization deserialization