Заполните классы, сгенерированные из XSD, используя XMLNode
Я использовал XSD2Code для создания набора классов C#, представляющих XML-документ, который я в настоящее время извлекаю из вызова веб-службы.
Возвращенный объект вызова веб-службы имеет тип XMLNode.
Я хочу создать объект из сгенерированных классов, а затем заполнить его из XMLNode.
Внешний класс, который, кажется, был сгенерирован, это NewDataSet.
Я немного застрял в том, как создать / заполнить этот объект. Нужно ли использовать десериализацию?
1 ответ
То, как я решил это, заключалось в следующем.
Я использовал проект Linq to XSD Project: http://linqtoxsd.codeplex.com/
Используя XSD, я создал новый набор классов C# из командной строки
C:\Linq2XSD\linqtoxsd.2.0.2.56002-bin>LinqToXsd.exe vehicle.xsd
[Microsoft (R) .NET Framework, Version v4.0.30319]
Generated vehicle.cs...
Затем я импортировал этот файл C# в мой код.
Мне нужно было добавить ссылку на библиотеку Xml.Scheme.Linq, после чего я мог создать заполненный набор объектов:
VehiclesData vehicleData = VehiclesData.Parse(vehiclesXMLNode.OuterXml);
и используйте Linq для доступа к типизированному XML следующим образом:
string vehicleColour = vehicleData.DataArea.Vehicles.Vehicle.ColourCurrent;
и так далее!