【发布时间】:2010-05-18 17:45:44
【问题描述】:
我在尝试反序列化来自数据集的 xml 字符串时遇到问题..
这是 XML 布局..
<DataSet>
<User>
<UserName>Test</UserName>
<Email>test@test.com</Email>
<Details>
<ID>1</ID>
<Name>TestDetails</Name>
<Value>1</Value>
</Details>
<Details>
<ID>2</ID>
<Name>Testing</Name>
<Value>3</Value>
</Details>
</User>
</DataSet>
现在我可以在执行操作时反序列化“用户名”和“电子邮件”
public class User
{
public string UserName {get;set;}
public string Email {get;set;}
public Details[] Details {get;set;}
}
public class Details
{
public int ID {get;set;}
public string Name {get;set;}
public string Value {get;set;}
}
当我刚得到用户节点时,这反序列化很好,详细信息不是空的,但里面没有项目..
我知道我想知道所有细节,但我宁愿不修改 XML,无论如何要让它正确反序列化而不在我得到它后重新创建 XML?
【问题讨论】:
-
尝试在属性上方添加 [XmlArrayItem(NestingLevel = 1, Type = typeof(Details))],但导致 Details 为空
-
您的 XML 是否与您粘贴的完全相同?如果是这样,它的格式不正确...在 /Details 之后缺少结尾 >
-
如上所述,在使用 Xml 序列化时,您应该使用 System.Xml.Serialization 命名空间中的属性标记您的类。
-
oops.. 不,XML 只是我的 XML 的一个示例。它有结束标记,是我在这里发帖时拼写错误
-
XML 工作正常,只是不反序列化 Details 数组,因为它不包含 ArrayOfDetails,但我无法修改 XML,所以无法弄清楚如何解决它...
标签: c# .net xml serialization