1
我有我需要反序列化的XML文件。我使用Visual Studio中的XSD工具来创建c#对象文件。生成的类会对文件进行反序列化,但不以我需要的方式进行反序列化。将子元素反序列化为父类的属性
我将不胜感激任何帮助搞清楚如何解决这个问题。
名为'data'的子元素应该是父元素'task'的属性。
了XML的简短例子如下:
<task type="Nothing" id="2" taskOnFail="false" >
<data value="" name="prerequisiteTasks" />
<data value="" name="exclusionTasks" />
<data value="" name="allowRepeats" />
<task type="Wait for Tasks" id="10" taskOnFail="false" >
<data value="" name="prerequisiteTasks" />
<data value="" name="exclusionTasks" />
<data value="" name="allowRepeats" />
</task>
<task type="Wait for Tasks" id="10" taskOnFail="false" >
<data value="" name="prerequisiteTasks" />
<data value="" name="exclusionTasks" />
<data value="" name="allowRepeats" />
</task>
</task>
类的定义我想反序列化的形式是:
public class task {
public string prerequisiteTasks {get;set;}
public string exclusionTasks {get;set;}
public string allowRepeats {get;set;}
[System.Xml.Serialization.XmlElementAttribute("task")]
public List<task> ChildTasks {get;set;}
}
孩子“任务的都很好,但生成的文件将'data'元素放入data []数组中,而不是我需要的任务类的名称成员。
你的意思,因为名单的? 这部分在.net 3.5中工作得很好(也许它在早期版本中没有)。生成的XSD代码将其作为task [],但将其更改为List <>会起作用。 问题是,XSD生成的代码将数据元素放入类型为data []的数组中,而我希望它们作为父元素(任务)的属性作为名称标记的字符串。 –
LloydPickering
2010-06-15 14:40:17