PERWAPI.ClassDef.BuildTables C# (CSharp) Метод

BuildTables() закрытый приватный Метод

final private BuildTables ( MetaDataOut md ) : void
md MetaDataOut
Результат void
        internal override sealed void BuildTables(MetaDataOut md)
        {
            md.AddToTable(MDTable.TypeDef,this);
            //if ((flags & (uint)TypeAttr.Interface) != 0) { superType = null; }
            if (superType != null) {
                superType.BuildMDTables(md);
                if (superType is ClassSpec) md.AddToTable(MDTable.TypeSpec,superType);
            }
            for (int i=0; i < genericParams.Count; i++) {
                ((GenericParam)genericParams[i]).BuildMDTables(md);
            }
            nameIx = md.AddToStringsHeap(name);
            nameSpaceIx = md.AddToStringsHeap(nameSpace);
            if (security != null) {
                for (int i=0; i < security.Count; i++) {
                    ((DeclSecurity)security[i]).BuildMDTables(md);
                }
            }
            // Console.WriteLine("Building tables for " + name);
            if (layout != null) layout.BuildMDTables(md);
            // Console.WriteLine("adding methods " + methods.Count);
            methodIx = md.TableIndex(MDTable.Method);
            for (int i=0; i < methods.Count; i++) {
                ((MethodDef)methods[i]).BuildMDTables(md);
            }
            // Console.WriteLine("adding fields");
            fieldIx = md.TableIndex(MDTable.Field);
            for (int i=0; i < fields.Count; i++) {
                ((FieldDef)fields[i]).BuildMDTables(md);
            }
            // Console.WriteLine("adding interfaceimpls and methodimpls");
            if (interfaces.Count > 0) {
                for (int i=0; i < interfaces.Count; i++) {
                    ((InterfaceImpl)interfaces[i]).BuildMDTables(md);
                }
            }
            if (methodImpls.Count > 0) {
                for (int i=0; i < methodImpls.Count; i++) {
                    ((MethodImpl)methodImpls[i]).BuildMDTables(md);
                }
            }
            // Console.WriteLine("adding events and properties");
            if (events.Count > 0) {
                new MapElem(this,md.TableIndex(MDTable.Event),MDTable.EventMap).BuildMDTables(md);
                for (int i=0; i < events.Count; i++) {
                    ((Event)events[i]).BuildMDTables(md);
                }
            }
            if (properties.Count > 0) {
                new MapElem(this,md.TableIndex(MDTable.Property),MDTable.PropertyMap).BuildMDTables(md);
                for (int i=0; i < properties.Count; i++) {
                    ((Property)properties[i]).BuildMDTables(md);
                }
            }
            // Console.WriteLine("Adding nested classes");
            if (nestedClasses.Count > 0) {
                for (int i=0; i < nestedClasses.Count; i++) {
                    ClassDef nClass = (ClassDef)nestedClasses[i];
                    nClass.BuildMDTables(md);
                    new MapElem(nClass,this,MDTable.NestedClass).BuildTables(md);
                }
            }
            // Console.WriteLine("End of building tables");
        }