C# 如何使用asp.net序列化使用值和属性反序列化xml节点
我有4个小类来反序列化xml,从一个输入的xml轮询到用于构建轮询的可用类 现在,我知道如何从类中设置属性,以匹配xml中的某个属性或元素,如果该元素只是一个字符串,那么这很容易 但是,如果元素也有如下示例中所示的属性,该怎么办C# 如何使用asp.net序列化使用值和属性反序列化xml节点,c#,xml,c#-4.0,xml-serialization,C#,Xml,C# 4.0,Xml Serialization,我有4个小类来反序列化xml,从一个输入的xml轮询到用于构建轮询的可用类 现在,我知道如何从类中设置属性,以匹配xml中的某个属性或元素,如果该元素只是一个字符串,那么这很容易 但是,如果元素也有如下示例中所示的属性,该怎么办 <Questions> <Question id="a guid"> <AnswerItems> <AnswerItem Id="a guid">3</AnswerItem> <Answ
<Questions>
<Question id="a guid">
<AnswerItems>
<AnswerItem Id="a guid">3</AnswerItem>
<AnswerItem Id="a guid">2</AnswerItem>
<AnswerItem Id="a guid">5</AnswerItem>
</AnswerItems>
</Question>
</Questions>
好的,AnswerItem节点的值,这也是我想要得到的。
我可以轻松地不使用AnswerItem类,只使用字符串类型的XmlArray AnswerItems并将值放入数组中,但这样我将丢失AnswerItem的Id属性。在
AnswerItem
中,创建一个名为Value
的属性,并用XmlText
属性标记它。此设置将导致XmlSerializer
将AnswerItem
元素中的文本读入Value
属性
[Serializable()]
public class AnswerItem
{
[XmlAttribute("Id")]
public Guid QuestionId { get; set; }
[XmlText]
public string Value { get; set; }
}
我只是想贴出来,我一直在寻找一个类似问题的答案,这是第一个在整个堆栈中向我展示类似的东西。。。如果可以的话,我会给+10是的,谢谢你,老家伙,但这是一个好东西,搜索时不会出现!回答得很好。虽然我在上读了一些其他文章,所以序列化程序不考虑Serializable()属性,类似地,我的类也没有这样的属性。但代码运行得很好。:)
[Serializable()]
public class AnswerItem
{
[XmlAttribute("Id")]
public Guid QuestionId { get; set; }
[XmlText]
public string Value { get; set; }
}