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

ImportDerivedTypeMapping() public method

public ImportDerivedTypeMapping ( XmlQualifiedName name, Type baseType, bool baseTypeCanBeIndirect ) : XmlTypeMapping
name System.Xml.XmlQualifiedName
baseType Type
baseTypeCanBeIndirect bool
return XmlTypeMapping
        public XmlTypeMapping ImportDerivedTypeMapping(XmlQualifiedName name, Type baseType, bool baseTypeCanBeIndirect)
        {
            ElementAccessor element = ImportElement(name, typeof(TypeMapping), baseType);

            if (element.Mapping is StructMapping)
            {
                MakeDerived((StructMapping)element.Mapping, baseType, baseTypeCanBeIndirect);
            }
            else if (baseType != null)
            {
                if (element.Mapping is ArrayMapping)
                {
                    // in the case of the ArrayMapping we can use the top-level StructMapping, because it does not have base base type
                    element.Mapping = ((ArrayMapping)element.Mapping).TopLevelMapping;
                    MakeDerived((StructMapping)element.Mapping, baseType, baseTypeCanBeIndirect);
                }
                else
                {
                    // Element '{0}' from namespace '{1}' is not a complex type and cannot be used as a {2}.
                    throw new InvalidOperationException(SR.Format(SR.XmlBadBaseElement, name.Name, name.Namespace, baseType.FullName));
                }
            }
            return new XmlTypeMapping(Scope, element);
        }

Same methods

XmlSchemaImporter::ImportDerivedTypeMapping ( XmlQualifiedName name, Type baseType ) : XmlTypeMapping