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

ImportXmlnsDeclarationsMember() private method

private ImportXmlnsDeclarationsMember ( XmlSchemaType type, CodeIdentifiers members, CodeIdentifiers membersScope ) : void
type System.Xml.Schema.XmlSchemaType
members CodeIdentifiers
membersScope CodeIdentifiers
return void
        private void ImportXmlnsDeclarationsMember(XmlSchemaType type, CodeIdentifiers members, CodeIdentifiers membersScope)
        {
            string xmlnsMemberName;
            if (!KeepXmlnsDeclarations(type, out xmlnsMemberName))
                return;
            TypeDesc xmlnsTypeDesc = Scope.GetTypeDesc(typeof(XmlSerializerNamespaces));
            StructMapping xmlnsMapping = new StructMapping();

            xmlnsMapping.TypeDesc = xmlnsTypeDesc;
            xmlnsMapping.TypeName = xmlnsMapping.TypeDesc.Name;
            xmlnsMapping.Members = new MemberMapping[0];
            xmlnsMapping.IncludeInSchema = false;
            xmlnsMapping.ReferencedByTopLevelElement = true;

            ElementAccessor xmlns = new ElementAccessor();
            xmlns.Mapping = xmlnsMapping;

            MemberMapping member = new MemberMapping();
            member.Elements = new ElementAccessor[] { xmlns };
            member.Name = CodeIdentifier.MakeValid(xmlnsMemberName == null ? "Namespaces" : xmlnsMemberName);
            member.Name = membersScope.AddUnique(member.Name, member);
            members.Add(member.Name, member);
            member.TypeDesc = xmlnsTypeDesc;
            member.Xmlns = new XmlnsAccessor();
            member.Ignore = true;
        }