для начинающих
Я нашел ответы, которые были здесь очень полезными, и сказал, что я все еще изо всех сил пытался заставить это работать. Так что, если кому-то это поможет, я напишу рабочее решение:
XML из оригинального вопроса. XML находится в файле Class1.xml, path
к этому файлу используется в коде для поиска этого XML-файла.
Я использовал ответ @erymski, чтобы заставить это работать, поэтому создал файл с именем Car.cs и добавил следующее:
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 ...
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);
}
}
}
}
Надеюсь, это поможет: -)