internal ExportedTypeRow this[uint rowId] { get { int rowOffset = (int)(rowId - 1) * this.RowSize; TypeDefFlags typeDefFlags = (TypeDefFlags)this.ExportedTypeTableMemoryReader.PeekUInt32(rowOffset + this.FlagsOffset); uint typeDefId = this.ExportedTypeTableMemoryReader.PeekUInt32(rowOffset + this.TypeDefIdOffset); uint typeName = this.ExportedTypeTableMemoryReader.PeekReference(rowOffset + this.TypeNameOffset, this.IsStringHeapRefSizeSmall); uint typeNamespace = this.ExportedTypeTableMemoryReader.PeekReference(rowOffset + this.TypeNamespaceOffset, this.IsStringHeapRefSizeSmall); uint implementation = this.ExportedTypeTableMemoryReader.PeekReference(rowOffset + this.ImplementationOffset, this.IsImplementationRefSizeSmall); implementation = ImplementationTag.ConvertToToken(implementation); ExportedTypeRow exportedTypeRow = new ExportedTypeRow(typeDefFlags, typeDefId, typeName, typeNamespace, implementation); return exportedTypeRow; } }
ExportedTypeNestedAlias CreateExportedNestedType( uint exportedTypeRowId, ExportedTypeRow exportedTypeRow, ExportedTypeAliasBase parentExportedType ) { IName typeName = this.GetNameFromOffset(exportedTypeRow.TypeName); ExportedTypeNestedAlias exportedType = new ExportedTypeNestedAlias(this, typeName, exportedTypeRowId, exportedTypeRow.Flags, parentExportedType); parentExportedType.AddMember(exportedType); return exportedType; }
ExportedTypeNestedAlias CreateExportedNestedType(uint exportedTypeRowId, ExportedTypeRow exportedTypeRow, ExportedTypeAliasBase parentExportedType) { ExportedTypeNestedAlias exportedType = new ExportedTypeNestedAlias(this, exportedTypeRowId, exportedTypeRow.Flags, parentExportedType); parentExportedType.AddMember(exportedType); return exportedType; }
ExportedTypeNamespaceAlias CreateExportedNamespaceType( uint exportedTypeRowId, ExportedTypeRow exportedTypeRow, Namespace moduleNamespace ) { IName typeName = this.GetNameFromOffset(exportedTypeRow.TypeName); ExportedTypeNamespaceAlias exportedType = new ExportedTypeNamespaceAlias(this, typeName, exportedTypeRowId, exportedTypeRow.Flags, moduleNamespace); moduleNamespace.AddMember(exportedType); return exportedType; }
ExportedTypeNamespaceAlias CreateExportedNamespaceType(uint exportedTypeRowId, ExportedTypeRow exportedTypeRow, Namespace moduleNamespace) { ExportedTypeNamespaceAlias exportedType = new ExportedTypeNamespaceAlias(this, exportedTypeRowId, exportedTypeRow.Flags, moduleNamespace); moduleNamespace.AddMember(exportedType); return exportedType; }