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);
}
}
}