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

XmlDynamicSerializer

namespace Castle.Components.DictionaryAdapter.Xml { public class XmlDynamicSerializer : XmlTypeSerializer { public static readonly XmlDynamicSerializer Instance = new XmlDynamicSerializer(); public override XmlTypeKind Kind => XmlTypeKind.Simple; protected XmlDynamicSerializer() { } public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor) { if ((object)node.ClrType != typeof(object)) return XmlTypeSerializer.For(node.ClrType).GetValue(node, parent, accessor); return new object(); } public override void SetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor, ref object value) { if ((object)node.ClrType != typeof(object)) XmlTypeSerializer.For(node.ClrType).SetValue(node, parent, accessor, ref value); else node.Clear(); } } }