Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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# 如何使用asp.net序列化使用值和属性反序列化xml节点_C#_Xml_C# 4.0_Xml Serialization - Fatal编程技术网

C# 如何使用asp.net序列化使用值和属性反序列化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

我有4个小类来反序列化xml,从一个输入的xml轮询到用于构建轮询的可用类

现在,我知道如何从类中设置属性,以匹配xml中的某个属性或元素,如果该元素只是一个字符串,那么这很容易 但是,如果元素也有如下示例中所示的属性,该怎么办

<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; }
}