<PackageReference Include="Castle.Core" Version="3.3.0" />

XmlSimpleSerializer<T>

using System; namespace Castle.Components.DictionaryAdapter.Xml { public class XmlSimpleSerializer<T> : XmlTypeSerializer { private readonly Func<T, string> getString; private readonly Func<string, T> getObject; public override XmlTypeKind Kind => XmlTypeKind.Simple; public XmlSimpleSerializer(Func<T, string> getString, Func<string, T> getObject) { this.getString = getString; this.getObject = getObject; } public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor) { return getObject(node.Value); } public override void SetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor, object oldValue, ref object value) { node.Value = getString((T)value); } } }