AddTypeMapping() приватный Метод

private AddTypeMapping ( TypeMapping typeMapping ) : void
typeMapping TypeMapping
Результат void
Пример #1
0
 StructMapping GetRootMapping()
 {
     if (root == null)
     {
         root = CreateRootMapping();
         typeScope.AddTypeMapping(root);
     }
     return(root);
 }
Пример #2
0
 private StructMapping GetRootMapping()
 {
     if (_root == null)
     {
         _root = CreateRootMapping();
         _typeScope.AddTypeMapping(_root);
     }
     return(_root);
 }
Пример #3
0
        StructMapping ImportStructType(XmlSchemaComplexType type, string typeNs, bool excludeFromImport)
        {
            TypeDesc baseTypeDesc = null;

            Mapping baseMapping = null;

            if (!type.DerivedFrom.IsEmpty)
            {
                baseMapping = ImportType(type.DerivedFrom, excludeFromImport);

                if (baseMapping is StructMapping)
                {
                    baseTypeDesc = ((StructMapping)baseMapping).TypeDesc;
                }
                else
                {
                    baseMapping = null;
                }
            }
            if (baseMapping == null)
            {
                baseMapping = GetRootMapping();
            }
            Mapping previousMapping = (Mapping)mappings[type];

            if (previousMapping != null)
            {
                return((StructMapping)previousMapping);
            }
            string        typeName      = GenerateUniqueTypeName(type.Name);
            StructMapping structMapping = new StructMapping();
            TypeFlags     flags         = TypeFlags.Reference;

            if (type.IsAbstract)
            {
                flags |= TypeFlags.Abstract;
            }
            structMapping.TypeDesc  = new TypeDesc(typeName, typeName, TypeKind.Struct, baseTypeDesc, flags);
            structMapping.Namespace = typeNs;
            structMapping.TypeName  = type.Name;
            if (!excludeFromImport)
            {
                structMapping.BaseMapping = (StructMapping)baseMapping;
                mappings.Add(type, structMapping);
            }
            CodeIdentifiers members = new CodeIdentifiers();

            members.AddReserved(typeName);
            structMapping.Members = ImportTypeMembers(type, typeNs, members);
            if (!excludeFromImport)
            {
                scope.AddTypeMapping(structMapping);
            }
            ImportDerivedTypes(new XmlQualifiedName(type.Name, typeNs));
            return(structMapping);
        }