Заполните классы, сгенерированные из 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;

и так далее!

Другие вопросы по тегам