Пример #1
0
 void WriteCount(int rid)
 {
     if (m_heap.HasTable(rid))
     {
         m_binaryWriter.Write(m_heap [rid].Rows.Count);
     }
 }
 public override void VisitTableCollection(TableCollection coll)
 {
     if (m_heap.HasTable(ModuleTable.RId))
     {
         coll.Add(new ModuleTable());
         m_rows [ModuleTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(TypeRefTable.RId))
     {
         coll.Add(new TypeRefTable());
         m_rows [TypeRefTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(TypeDefTable.RId))
     {
         coll.Add(new TypeDefTable());
         m_rows [TypeDefTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(FieldTable.RId))
     {
         coll.Add(new FieldTable());
         m_rows [FieldTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(MethodTable.RId))
     {
         coll.Add(new MethodTable());
         m_rows [MethodTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(ParamTable.RId))
     {
         coll.Add(new ParamTable());
         m_rows [ParamTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(InterfaceImplTable.RId))
     {
         coll.Add(new InterfaceImplTable());
         m_rows [InterfaceImplTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(MemberRefTable.RId))
     {
         coll.Add(new MemberRefTable());
         m_rows [MemberRefTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(ConstantTable.RId))
     {
         coll.Add(new ConstantTable());
         m_rows [ConstantTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(CustomAttributeTable.RId))
     {
         coll.Add(new CustomAttributeTable());
         m_rows [CustomAttributeTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(FieldMarshalTable.RId))
     {
         coll.Add(new FieldMarshalTable());
         m_rows [FieldMarshalTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(DeclSecurityTable.RId))
     {
         coll.Add(new DeclSecurityTable());
         m_rows [DeclSecurityTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(ClassLayoutTable.RId))
     {
         coll.Add(new ClassLayoutTable());
         m_rows [ClassLayoutTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(FieldLayoutTable.RId))
     {
         coll.Add(new FieldLayoutTable());
         m_rows [FieldLayoutTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(StandAloneSigTable.RId))
     {
         coll.Add(new StandAloneSigTable());
         m_rows [StandAloneSigTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(EventMapTable.RId))
     {
         coll.Add(new EventMapTable());
         m_rows [EventMapTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(EventTable.RId))
     {
         coll.Add(new EventTable());
         m_rows [EventTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(PropertyMapTable.RId))
     {
         coll.Add(new PropertyMapTable());
         m_rows [PropertyMapTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(PropertyTable.RId))
     {
         coll.Add(new PropertyTable());
         m_rows [PropertyTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(MethodSemanticsTable.RId))
     {
         coll.Add(new MethodSemanticsTable());
         m_rows [MethodSemanticsTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(MethodImplTable.RId))
     {
         coll.Add(new MethodImplTable());
         m_rows [MethodImplTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(ModuleRefTable.RId))
     {
         coll.Add(new ModuleRefTable());
         m_rows [ModuleRefTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(TypeSpecTable.RId))
     {
         coll.Add(new TypeSpecTable());
         m_rows [TypeSpecTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(ImplMapTable.RId))
     {
         coll.Add(new ImplMapTable());
         m_rows [ImplMapTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(FieldRVATable.RId))
     {
         coll.Add(new FieldRVATable());
         m_rows [FieldRVATable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(AssemblyTable.RId))
     {
         coll.Add(new AssemblyTable());
         m_rows [AssemblyTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(AssemblyProcessorTable.RId))
     {
         coll.Add(new AssemblyProcessorTable());
         m_rows [AssemblyProcessorTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(AssemblyOSTable.RId))
     {
         coll.Add(new AssemblyOSTable());
         m_rows [AssemblyOSTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(AssemblyRefTable.RId))
     {
         coll.Add(new AssemblyRefTable());
         m_rows [AssemblyRefTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(AssemblyRefProcessorTable.RId))
     {
         coll.Add(new AssemblyRefProcessorTable());
         m_rows [AssemblyRefProcessorTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(AssemblyRefOSTable.RId))
     {
         coll.Add(new AssemblyRefOSTable());
         m_rows [AssemblyRefOSTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(FileTable.RId))
     {
         coll.Add(new FileTable());
         m_rows [FileTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(ExportedTypeTable.RId))
     {
         coll.Add(new ExportedTypeTable());
         m_rows [ExportedTypeTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(ManifestResourceTable.RId))
     {
         coll.Add(new ManifestResourceTable());
         m_rows [ManifestResourceTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(NestedClassTable.RId))
     {
         coll.Add(new NestedClassTable());
         m_rows [NestedClassTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(GenericParamTable.RId))
     {
         coll.Add(new GenericParamTable());
         m_rows [GenericParamTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(MethodSpecTable.RId))
     {
         coll.Add(new MethodSpecTable());
         m_rows [MethodSpecTable.RId] = m_binaryReader.ReadInt32();
     }
     if (m_heap.HasTable(GenericParamConstraintTable.RId))
     {
         coll.Add(new GenericParamConstraintTable());
         m_rows [GenericParamConstraintTable.RId] = m_binaryReader.ReadInt32();
     }
 }
Пример #3
0
        public AssemblyTable GetAssemblyTable()
        {
            int rid = AssemblyTable.RId;

            if (m_heap.HasTable(rid))
            {
                return(m_heap [rid] as AssemblyTable);
            }

            AssemblyTable table = new AssemblyTable();

            table.Rows    = new RowCollection();
            m_heap.Valid |= 1L << rid;
            m_heap.Tables.Add(table);
            return(table);
        }