/*^ #pragma warning disable 2674, 2666 ^*/ internal PEFileReader( PeReader moduleReadWriteFactory, IBinaryDocumentMemoryBlock binaryDocumentMemoryBlock ) { this.ErrorContainer = new MetadataErrorContainer(moduleReadWriteFactory, binaryDocumentMemoryBlock.BinaryDocument); this.ReaderState = ReaderState.Initialized; this.BinaryDocumentMemoryBlock = binaryDocumentMemoryBlock; if (!this.ReadPEFileLevelData()) return; if (!this.ReadCORModuleLevelData()) return; if (!this.ReadMetadataLevelData()) return; // TODO: Add phase for Metadata validation of offsets type row ids etc... }
internal PEFileReader(PeReader moduleReadWriteFactory, IBinaryDocumentMemoryBlock binaryDocumentMemoryBlock, bool snapshot = false) { this.ErrorContainer = new MetadataErrorContainer(moduleReadWriteFactory, binaryDocumentMemoryBlock.BinaryDocument); this.ReaderState = ReaderState.Initialized; this.BinaryDocumentMemoryBlock = binaryDocumentMemoryBlock; if (!snapshot) { if (!this.ReadPEFileLevelData()) return; if (!this.ReadCORModuleLevelData()) return; } else { this.SectionHeaders = new SectionHeader[0]; if (!this.ReadMetadataRoot()) return; } if (!this.ReadMetadataLevelData()) return; // TODO: Add phase for Metadata validation of offsets type row ids etc... }