Я нашел ответы здесь очень полезными, сказав, что я все еще борелся (всего лишь немного), чтобы заставить это работать. Поэтому, если это поможет кому-то, я расскажу о рабочем решении:
XML из оригинального вопроса. Xml находится в файле Class1.xml, path
к этому файлу используется в коде для поиска этого xml-файла.
Я использовал ответ by @erymski, чтобы заставить это работать, поэтому создал файл под названием Car.cs и добавил следующее:
blockquote>using System.Xml.Serialization; // Added public class Car { public string StockNumber { get; set; } public string Make { get; set; } public string Model { get; set; } } [XmlRootAttribute("Cars")] public class CarCollection { [XmlElement("Car")] public Car[] Cars { get; set; } }
Другой бит кода, предоставленный @erymski ...
< / blockquote>using (TextReader reader = new StreamReader(path)) { XmlSerializer serializer = new XmlSerializer(typeof(CarCollection)); return (CarCollection) serializer.Deserialize(reader); }
... входит в вашу основную программу (Program.cs), в
static CarCollection XCar()
, как это:using System; using System.IO; using System.Xml.Serialization; namespace ConsoleApp2 { class Program { public static void Main() { var c = new CarCollection(); c = XCar(); foreach (var k in c.Cars) { Console.WriteLine(k.Make + " " + k.Model + " " + k.StockNumber); } c = null; Console.ReadLine(); } static CarCollection XCar() { using (TextReader reader = new StreamReader(@"C:\Users\SlowLearner\source\repos\ConsoleApp2\ConsoleApp2\Class1.xml")) { XmlSerializer serializer = new XmlSerializer(typeof(CarCollection)); return (CarCollection)serializer.Deserialize(reader); } } } }
Надеюсь, что это поможет: -)