System.Xml.XPath.XPathNavigator.ValueAs C# (CSharp) Method

ValueAs() public method

public ValueAs ( Type returnType, IXmlNamespaceResolver nsResolver ) : object
returnType Type
nsResolver IXmlNamespaceResolver
return object
        public override object ValueAs(Type returnType, IXmlNamespaceResolver nsResolver)
        {
            if (nsResolver == null)
            {
                nsResolver = this;
            }
            IXmlSchemaInfo schemaInfo = SchemaInfo;
            XmlSchemaType schemaType;
            XmlSchemaDatatype datatype;
            if (schemaInfo != null)
            {
                if (schemaInfo.Validity == XmlSchemaValidity.Valid)
                {
                    schemaType = schemaInfo.MemberType;
                    if (schemaType == null)
                    {
                        schemaType = schemaInfo.SchemaType;
                    }
                    if (schemaType != null)
                    {
                        return schemaType.ValueConverter.ChangeType(Value, returnType, nsResolver);
                    }
                }
                else
                {
                    schemaType = schemaInfo.SchemaType;
                    if (schemaType != null)
                    {
                        datatype = schemaType.Datatype;
                        if (datatype != null)
                        {
                            return schemaType.ValueConverter.ChangeType(datatype.ParseValue(Value, NameTable, nsResolver), returnType, nsResolver);
                        }
                    }
                }
            }
            return XmlUntypedConverter.Untyped.ChangeType(Value, returnType, nsResolver);
        }