将类序列化为XML?

Gua*_*apo 8 c# xml-serialization

我有以下类和持有它的列表:

public class Transport
{
    public string TransportType { get; set; }
    public string Mode { get; set; }
    public class Coordinates
    {
        public float ID { get; set; }
        public float LocX { get; set; }
        public float LocY { get; set; }
        public float LocZ { get; set; }
        public ObjectState State { get; set; }
        public List<int[]> Connections = new <int[]>();
    }
}

public enum ObjectState
{
    Fly,
    Ground,
    Water
}

public static List<Transport> Tracking = new List<Transport>();
Run Code Online (Sandbox Code Playgroud)

如何将跟踪序列化为XML?

我知道我可以在列表中使用[Serializable]并将其序列化为文件,但我不确定如何定义它以保存为XML.

Jus*_*ner 19

如果您的两个类都使用[Serializable]属性标记,则将内容保存到文件应该如下所示:

var serializer = new XmlSerializer(typeof(Transport));

using(var writer = new StreamWriter("C:\\Path\\To\\File.xml"))
{
    serializer.Serialize(writer, instance);
}
Run Code Online (Sandbox Code Playgroud)

更新

对不起,没有意识到你在询问如何自定义输出.这就是[XmlAttribute][XmlElement]属性的用途:

public class Transport
{
    // Store TransportType as an attrribute called Type in the XML
    [XmlAttribute("Type")]
    public string TransportType { get; set; }

    // Rest of Implementation
}
Run Code Online (Sandbox Code Playgroud)