在C#中创建自定义XML序列化程序,以帮助XML文档转换为对象

时间:2018-07-26 07:51:46

标签: c# xml serialization xml-serialization

我具有以下提到的以下格式的xml格式:-

<JobRunnerPluginStaus PluginName="JobRun">                        
  <JobstepStatus>
    <JobStatus StepNumber="1" StepStatus="Done"/>
    <JobStatus StepNumber="2" StepStatus="Started" />                     
  </JobstepStatus>
</JobRunnerPluginStaus>

我想使用泛型和反射将其转换为以下类对象。

我想将属性转换为简单类型(PluginName),并将嵌套属性转换为列表对象(JobstepStatus)。

public class JobRunnerPluginStaus
{
    public List<JobStatus> JobstepStatus { get; set; }
    public string PluginName { get; set; }
}
public class JobStatus
{
    public int StepNumber { get; set; }
    public string StepStatus { get; set; }
}

1 个答案:

答案 0 :(得分:0)

我主要使用以下网站:https://xmltocsharp.azurewebsites.net/ 为我做肮脏的工作。

下面是您的类层次结构的外观:

[XmlRoot(ElementName="JobStatus")]
    public class JobStatus {
        [XmlAttribute(AttributeName="StepNumber")]
        public string StepNumber { get; set; }
        [XmlAttribute(AttributeName="StepStatus")]
        public string StepStatus { get; set; }
    }

    [XmlRoot(ElementName="JobstepStatus")]
    public class JobstepStatus {
        [XmlElement(ElementName="JobStatus")]
        public List<JobStatus> JobStatus { get; set; }
    }

    [XmlRoot(ElementName="JobRunnerPluginStaus")]
    public class JobRunnerPluginStaus {
        [XmlElement(ElementName="JobstepStatus")]
        public JobstepStatus JobstepStatus { get; set; }
        [XmlAttribute(AttributeName="PluginName")]
        public string PluginName { get; set; }
    }