public NetTextBuilder(ImageNetDirectory directory) { _directory = directory; ImportBuilder = new ImageImportDirectoryBuilder(directory.Assembly, directory.Assembly.ImportDirectory); Segments.Add(ImportBuilder.AddressTablesBuilder); Segments.Add(directory); Segments.Add(MethodBodyTableBuilder = new MethodBodyTableBuilder()); Segments.Add(NetResourceDirectoryBuilder = new NetResourceDirectoryBuilder()); Segments.Add(DataBuilder = new NetDataTableBuilder()); if (directory.StrongNameData != null) { Segments.Add(directory.StrongNameData); } Segments.Add(Metadata = new MetadataBuilder(directory.MetadataHeader)); if (directory.Assembly.DebugDirectory != null) { Segments.Add(directory.Assembly.DebugDirectory); Segments.Add(directory.Assembly.DebugDirectory.Data); } Segments.Add(ImportBuilder); Segments.Add(StartupCode = new StartupCodeSegmentBuilder()); }
internal static ImageNetDirectory FromReadingContext(ReadingContext context) { var reader = context.Reader; var directory = new ImageNetDirectory { _readingContext = context, StartOffset = reader.Position, Cb = reader.ReadUInt32(), MajorRuntimeVersion = reader.ReadUInt16(), MinorRuntimeVersion = reader.ReadUInt16(), MetadataDirectory = ImageDataDirectory.FromReadingContext(context), Flags = (ImageNetDirectoryFlags)reader.ReadUInt32(), EntryPointToken = reader.ReadUInt32(), ResourcesDirectory = ImageDataDirectory.FromReadingContext(context), StrongNameSignatureDirectory = ImageDataDirectory.FromReadingContext(context), CodeManagerTableDirectory = ImageDataDirectory.FromReadingContext(context), VTableFixupsDirectory = ImageDataDirectory.FromReadingContext(context), ExportAddressTableJumpsDirectory = ImageDataDirectory.FromReadingContext(context), ManagedNativeHeaderDirectory = ImageDataDirectory.FromReadingContext(context), }; return(directory); }
public NetTextBuilder(ImageNetDirectory directory) { _directory = directory; ImportBuilder = new ImageImportDirectoryBuilder(directory.Assembly, directory.Assembly.ImportDirectory); Segments.Add(ImportBuilder.AddressTablesBuilder); Segments.Add(directory); Segments.Add(MethodBodyTableBuilder = new MethodBodyTableBuilder()); Segments.Add(NetResourceDirectoryBuilder = new NetResourceDirectoryBuilder()); Segments.Add(DataBuilder = new NetDataTableBuilder()); if (directory.StrongNameData != null) Segments.Add(directory.StrongNameData); Segments.Add(Metadata = new MetadataBuilder(directory.MetadataHeader)); if (directory.Assembly.DebugDirectory != null) { Segments.Add(directory.Assembly.DebugDirectory); Segments.Add(directory.Assembly.DebugDirectory.Data); } Segments.Add(ImportBuilder); Segments.Add(StartupCode = new StartupCodeSegmentBuilder()); }