public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
 {
     using (var reader = new XmlSubtreeReader(node, Root))
         return(serializer.CanDeserialize(reader)
             ? serializer.Deserialize(reader)
             : null);
 }
Exemple #2
0
        public override object GetValue(IXmlNode node, IDictionaryAdapter parent, IXmlAccessor accessor)
        {
            var serializable = (IXmlSerializable)Activator.CreateInstance(node.ClrType);

            using (var reader = new XmlSubtreeReader(node, XmlDefaultSerializer.Root))
            {
                // Do NOT pre-read containing element
                // ...IXmlSerializable is not a symmetric contract
                serializable.ReadXml(reader);
            }

            return(serializable);
        }