Сериализовать/Десериализовать 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д