Для ООП думаю надо будет создавать класс описывающий xml структуру (
описание), конкретно для данного фрагмента этот класс будет выглядеть так:
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.Serialization;
using System.Xml.Serialization;
[DataContract(Name = "span")]
public class Span
{
/// <summary>
///
/// </summary>
[XmlAttribute("class")]
public string VerticalInterval { get; set; }
/// <summary>
///
/// </summary>
[XmlAttribute("data-ng-bind")]
public string DataNgBind{ get; set; }
}
Для серелизации и десерилизации Span можно использовать следующий класс:
namespace Common
{
using System.IO;
using System.Xml.Serialization;
public static class Serialization
{
public static string SerializeToString(this object obj)
{
var xmlSerializer = new XmlSerializer(obj.GetType());
var stringWriter = new StringWriter();
xmlSerializer.Serialize(stringWriter, obj);
return stringWriter.ToString();
}
public static T DeserializeString<T>(this string sourceString)
{
var xmlSerializer = new XmlSerializer(typeof(T));
var stringReader = new StringReader(sourceString);
return (T)xmlSerializer.Deserialize(stringReader);
}
}
}
или можно так:
var _span = new Span();
_span.VerticalInterval = "vertical-interval-xsmall form-field-input";
_span.DataNgBind = "bonusInfo.bonusData.CardNumber";
// передаем в конструктор тип класса
XmlSerializer formatter = new XmlSerializer(_span.GetType());
using (FileStream fs = new FileStream("model.xml", FileMode.OpenOrCreate))
{
formatter.Serialize(fs, _span);
Console.WriteLine("Объект сериализован");
}