【发布时间】:2014-01-29 06:58:47
【问题描述】:
我正在将我的课程序列化为 XML。我有一个问题,我的一个类的根元素没有正确命名。
完整的 XML 结构应如下所示。
<Workflow>
<Name>My Workflow</Name>
<Description />
<Modules>
<Module Name="Intro" MenuText="IntroText" />
</Modules>
</Workflow>
但是我得到了这个结果
<Workflow>
<Name>My Workflow</Name>
<Description />
<Modules>
<WorkflowModule Name="Intro" MenuText="IntroText" />
</Modules>
</Workflow>
我希望将元素“WorkflowModule”称为“Module”,但问题是我已经有了另一个名为 Module 的类。所以为了解决这个问题,我将它称为 WorkflowModule 并像这样放置一个类 XmlRoot() 声明;
[XmlRoot("Module")]
public class WorkflowModule
{...}
但是当我序列化 Workflow 类时,它仍然会出现 WorkflowModule。
这是我的两门课;
[XmlRoot("Workflow")]
public class Workflow
{
private string _name;
private string _description;
private List<WorkflowModule> _modules = new List<WorkflowModule>();
[XmlElement("Name")]
public String Name
{
get { }
set { }
}
[XmlElement("Description")]
public String Description
{
get { }
set { }
}
[XmlArrayItem(typeof(WorkflowModule))]
public List<WorkflowModule> Modules
{
get { }
set { }
}
}
[XmlRoot("Module")]
public class WorkflowModule
{
private string _name;
private string _menu_text;
public WorkflowModule()
{
}
[XmlAttribute("Name")]
public String Name
{
get { }
set { }
}
[XmlAttribute("MenuText")]
public String MenuText
{
get { }
set { }
}
}
}
【问题讨论】:
-
xml文档只能有一个Root
-
那么在我为 WorkflowModule 类定义 XmlRoot() 的地方有没有办法序列化为另一个名称?