PERWAPI.PEReader.ReadMetaDataTableRefs C# (CSharp) Method

ReadMetaDataTableRefs() private method

private ReadMetaDataTableRefs ( ) : void
return void
        private void ReadMetaDataTableRefs()
        {
            SetUpTableInfo();
            SetThisScope();
            // ReadAssemblyRefs
            SetElementPosition(MDTable.AssemblyRef,1);
            if (tableLengths[(int)MDTable.AssemblyRef] > 0)
                AssemblyRef.Read(this,tables[(int)MDTable.AssemblyRef]);
            // Read File Table (for ModuleRefs)
            //SetElementPosition(MDTable.File,1);
            if (tableLengths[(int)MDTable.File] > 0)
                FileRef.Read(this,tables[(int)MDTable.File]);
            // Read Exported Classes
            //SetElementPosition(MDTable.ExportedType,1);
            if (tableLengths[(int)MDTable.ExportedType] > 0)
                ExternClass.GetClassRefs(this,tables[(int)MDTable.ExportedType]);
            // Read ModuleRefs
            if (tableLengths[(int)MDTable.ModuleRef] > 0) {
                BaseStream.Position = tableStarts[(int)MDTable.ModuleRef];
                ModuleRef.Read(this,tables[(int)MDTable.ModuleRef],true);
            }
            uint[] parIxs = new uint[tableLengths[(int)MDTable.TypeDef]];
            BaseStream.Position = tableStarts[(int)MDTable.NestedClass];
            MapElem.ReadNestedClassInfo(this,tableLengths[(int)MDTable.NestedClass],parIxs);
            BaseStream.Position = tableStarts[(int)MDTable.TypeRef];
            // Read ClassRefs
            if (tableLengths[(int)MDTable.TypeRef] > 0)
                ClassRef.Read(this,tables[(int)MDTable.TypeRef],true);
            // Read ClassDefs and fields and methods
            ClassDef.GetClassRefs(this,tables[(int)MDTable.TypeDef],(ReferenceScope)thisScope,parIxs);
            for (int i=0; i < tableLengths[(int)MDTable.ExportedType]; i++) {
                ((ClassRef)tables[(int)MDTable.ExportedType][i]).ResolveParent(this,true);
            }
        }