将类序列化为XML?

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

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 Connections = new (); } } public enum ObjectState { Fly, Ground, Water } public static List Tracking = new List(); 

如何将跟踪序列化为XML?

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

如果您的两个类都使用[Serializable]属性进行标记,那么将文件保存到文件应该非常简单:

 var serializer = new XmlSerializer(typeof(Transport)); using(var writer = new StreamWriter("C:\\Path\\To\\File.xml")) { serializer.Serialize(writer, instance); } 

更新

对不起,没有意识到你在询问如何自定义输出。 这就是[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 } 

你需要一个流和一个XmlSerializer对象,这是一个例子:

 FileStream fs = new FileStream(@"C:\MyPath", FileMode.OpenOrCreate); xmlSerializer = new XmlSerializer(typeof(MyClass)); xmlSerializer.Serialize(fs, myClassInstance); fs.Flush(); fs.Close(); fs.Dispose(); 

不要忘记以自己的方式处理错误。 我还假设您要序列化所有类的属性。