將我的類序列化爲XML。我的一個類的根元素沒有被正確命名。使用XmlRoot聲明序列化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」被稱爲「模塊」,然而問題是,我已經有一個名爲模塊另一個類。所以爲了解決這個問題,我將它稱爲WorkflowModule,並將類XmlRoot()聲明爲這樣;
[XmlRoot("Module")]
public class WorkflowModule
{...}
但是,當我序列化Workflow類它仍然會出現WorkflowModule。
這裏是我的2班課;
[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文檔只能有一個根 – Grundy
所以在這裏我定義XmlRoot()用於WorkflowModule類是有沒有辦法序列化爲一個名字嗎? – IEnumerable