내 클래스를 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이 계속 나타납니다.
여기에 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 { }
}
}
}
XmlArrayItem
attrubute 내에서 요소 이름을 설정합니다 .
[XmlArrayItem(typeof(WorkflowModule), ElementName = "Module")]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다