예제 #1
0
        /// Constructs an XmlBase from the node if it's type is known
        public static XmlBase CreateXmlObjectFromNode(XmlNode node, XmlDocument document)
        {
            XmlBase result = null;

            System.Type nodeType = null;

            //Instantiate the type if it's a known type
            if (xmlBaseTypes.TryGetValue(node.LocalName.ToLower(), out nodeType) && nodeType != null)
            {
                if (typeof(XmlBase).IsAssignableFrom(nodeType) && !nodeType.IsAbstract)
                {
                    result = System.Activator.CreateInstance(nodeType) as XmlBase;
                    result.ConstructFromXml(node, document);
                }
            }
            else if (node is XmlText)
            {
                result = new XmlCodeblock();
                result.ConstructFromXml(node, document);
            }

            //Return the result
            return(result);
        }