System.Xml.Serialization.XmlSchemaImporter.ImportType C# (CSharp) Method

ImportType() private method

private ImportType ( XmlQualifiedName name, Type desiredMappingType, Type baseType, TypeFlags flags, bool addref ) : TypeMapping
name System.Xml.XmlQualifiedName
desiredMappingType Type
baseType Type
flags TypeFlags
addref bool
return TypeMapping
        private TypeMapping ImportType(XmlQualifiedName name, Type desiredMappingType, Type baseType, TypeFlags flags, bool addref)
        {
            if (name.Name == Soap.UrType && name.Namespace == XmlSchema.Namespace)
                return ImportRootMapping();
            object type = FindType(name, flags);

            TypeMapping mapping = (TypeMapping)ImportedMappings[type];
            if (mapping != null && desiredMappingType.IsAssignableFrom(mapping.GetType()))
                return mapping;

            if (addref)
                AddReference(name, TypesInUse, SR.XmlCircularTypeReference);
            if (type is XmlSchemaComplexType)
            {
                mapping = ImportType((XmlSchemaComplexType)type, name.Namespace, name.Name, desiredMappingType, baseType, flags);
            }
            else if (type is XmlSchemaSimpleType)
                mapping = ImportDataType((XmlSchemaSimpleType)type, name.Namespace, name.Name, baseType, flags, false);
            else
                throw new InvalidOperationException(SR.XmlInternalError);

            if (addref && name.Namespace != XmlSchema.Namespace)
                RemoveReference(name, TypesInUse);

            return mapping;
        }

Same methods

XmlSchemaImporter::ImportType ( XmlSchemaComplexType type, string typeNs, string identifier, Type desiredMappingType, Type baseType, TypeFlags flags ) : TypeMapping