Сериализовать/Десериализовать xml объект - C#
Формулировка задачи:
Доброго времени суток! Подскажите пожалуйста, как сериализовать/десериализовать xml объект вида
<root> <auditChangeList> <row sTime="date" autor="guid"> <changedItem propertyName="title"> <oldValue>old</oldValue> <newValue>new</newValue> <propertyType>int</propertyType> </changedItem> </row> </auditChangeList> </root>
Класс получается таким если не ошибаюсь
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace aam.mc.WebApiService.App.Services.Models.Product { [Serializable] [XmlRoot(ElementName = "root")] public class HistoryModel { [XmlElement(ElementName = "auditChangeList")] public AuditChangeList AuditChangeList { get; set; } public HistoryModel() { } } [XmlRoot(ElementName = "changedItem")] public class ChangedItem { [XmlElement(ElementName = "oldValue")] public string OldValue { get; set; } [XmlElement(ElementName = "newValue")] public string NewValue { get; set; } [XmlElement(ElementName = "propertyType")] public string PropertyType { get; set; } [XmlAttribute(AttributeName = "propertyName")] public string PropertyName { get; set; } public ChangedItem() { } } [XmlRoot(ElementName = "row")] public class Row { [XmlElement(ElementName = "changedItem")] public ChangedItem ChangedItem { get; set; } [XmlAttribute(AttributeName = "sTime")] public DateTime STime { get; set; } [XmlAttribute(AttributeName = "autor")] public string Autor { get; set; } public Row() { } } [XmlRoot(ElementName = "auditChangeList")] public class AuditChangeList { [XmlElement(ElementName = "row")] public Row Row { get; set; } public AuditChangeList() { } } }
Прогуглил кучу информации, но результата не достиг
Решение задачи: «Сериализовать/Десериализовать xml объект»
textual
Листинг программы
using System; using System.IO; using System.Xml; using System.Xml.Serialization; class Program { static void Main() { var str = @"<root><auditChangeList><row sTime = '21.05.2017' autor = 'guid' ><changedItem propertyName = 'title'> <oldValue>old</oldValue><newValue>new</newValue><propertyType>int</propertyType></changedItem> </row></auditChangeList></root>"; XmlSerializer ser = new XmlSerializer(typeof(Root)); using (var stringReader = new StringReader(str)) { Root root = ser.Deserialize(stringReader) as Root; Console.WriteLine(root.AuditChangeList.Row.STime + " " + root.AuditChangeList.Row.Autor); } Console.ReadKey(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д