【问题标题】:Convert xml string to C# object将 xml 字符串转换为 C# 对象
【发布时间】:2018-11-27 09:49:25
【问题描述】:

下面是我的 XML 代码。

<programs>
<program>
    <ProgrameName>Test</ProgrameName>
    <deviceTypes>
        <DeviceType>POS</DeviceType>
        <deviceTargets>
            <DeviceNames>
                <DeviceName>POS0001</DeviceName>
                <DeviceName>POS0001</DeviceName>
                <DeviceName>POS0001</DeviceName>
            </DeviceNames>  
            <AttemptToIstall>True</AttemptToIstall>
            <Mandetory>False</Mandetory>
            <SkipIfOffline>False</SkipIfOffline>
        </deviceTargets>
        <AttemptToIstall>True</AttemptToIstall>
        <Mandatory>False</Mandatory>
        <SkipIfOffline>False</SkipIfOffline>
    </deviceTypes>      
</program>

请帮助我使用 XmlSerializer 编写 C# 代码。我想创建一个对象并根据上述 XML 序列化这些对象。

下面是我的 C# 类。

 public class ProgramP
{
    public string ProgrameName { get; set; }
    [XmlRoot("")]
    public class DeviceTypes
    {
        public string DeviceType { get; set; }
        [XmlRoot("")]
        public class DeviceTargets
        {
            public string DeviceNames { get; set; }
            public string AttemptToIstall { get; set; }
            public string Mandetory { get; set; }
            public string SkipIfOffline { get; set; }
        }
        [XmlElement("DeviceTargets")]
        public DeviceTargets[] ArDeviceTargets { get; set; }
        public string AttemptToIstall { get; set; }
        public string Mandetory { get; set; }
        public string SkipIfOffline { get; set; }

    }
    [XmlElement("DeviceTypes")]
    public DeviceTypes[] ArDeviceType { get; set; }
}

以下是我的 C# 代码。任何人都可以纠正我或建议我在哪里添加更多类或如何安排我的类,以便我可以将 XML 作为输出。

public void ExportClass(string strFilePathExportedXML)
    {
        ProgramP ProgramP = new ProgramP
        {
            ProgrameName = "Test",
            ArDeviceType = new ProgramP.DeviceTypes[] {
            new ProgramP.DeviceTypes {
                DeviceType = "POS1",
                  AttemptToIstall="True",
                            Mandetory="True",
                            SkipIfOffline="True",
                ArDeviceTargets = new ProgramP.DeviceTypes.DeviceTargets[] {
                    new ProgramP.DeviceTypes.DeviceTargets {
                        DeviceNames="POS01",
                        AttemptToIstall="True",
                        Mandetory="True",
                        SkipIfOffline="True"
                    },
                     new ProgramP.DeviceTypes.DeviceTargets {
                         DeviceNames="POS02",
                        AttemptToIstall="True",
                        Mandetory="True",
                        SkipIfOffline="True"
                    }
                }               
        };


 TextWriter writer = new StreamWriter(strFilePathExportedXML);
        XmlSerializer serializerOut = new XmlSerializer(typeof(ProgramP));
        serializerOut.Serialize(writer, ProgramP);
        writer.Close();

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: c# xml


【解决方案1】:

映射后,可以这样使用:

public static YourClass LoadFromXMLString(string xmlText)
{
    var stringReader = new System.IO.StringReader(xmlText);
    var serializer = new XmlSerializer(typeof(YourClass ));
    return serializer.Deserialize(stringReader) as YourClass ;
}

来自这个话题:Convert Xml to Object

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-11
    • 2011-03-12
    • 1970-01-01
    • 2013-06-20
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多