public FileSegmentBuilder GetResourceSegment(ManifestResource resource)
 {
     FileSegmentBuilder segment;
     if (!_resourceSegments.TryGetValue(resource, out segment))
     {
         segment = new FileSegmentBuilder();
         segment.Segments.Add(new DataSegment(BitConverter.GetBytes(resource.Data.Length)));
         segment.Segments.Add(new DataSegment(resource.Data));
         _resourceSegments.Add(resource, segment);
         Segments.Add(segment);
     }
     return segment;
 }
        public ImageImportDirectoryBuilder(IOffsetConverter offsetConverter, ImageImportDirectory directory)
        {
            if (offsetConverter == null)
                throw new ArgumentNullException("offsetConverter");
            if (directory == null)
                throw new ArgumentNullException("directory");

            _offsetConverter = offsetConverter;
            _directory = directory;

            _entryTableBuilder = new FileSegmentBuilder();
            _nameTableBuilder = new NameTableBuilder();
            _lookupTablesBuilder = new LookupTablesBuilder(_offsetConverter, _nameTableBuilder);
            AddressTablesBuilder = new LookupTablesBuilder(_offsetConverter, _nameTableBuilder);

            //Segments.Add(_addressTablesBuilder);
            Segments.Add(_entryTableBuilder);
            Segments.Add(_lookupTablesBuilder);
            Segments.Add(_nameTableBuilder);
        }
        public ImageImportDirectoryBuilder(IOffsetConverter offsetConverter, ImageImportDirectory directory)
        {
            if (offsetConverter == null)
            {
                throw new ArgumentNullException("offsetConverter");
            }
            if (directory == null)
            {
                throw new ArgumentNullException("directory");
            }

            _offsetConverter = offsetConverter;
            _directory       = directory;

            _entryTableBuilder   = new FileSegmentBuilder();
            _nameTableBuilder    = new NameTableBuilder();
            _lookupTablesBuilder = new LookupTablesBuilder(_offsetConverter, _nameTableBuilder);
            AddressTablesBuilder = new LookupTablesBuilder(_offsetConverter, _nameTableBuilder);

            //Segments.Add(_addressTablesBuilder);
            Segments.Add(_entryTableBuilder);
            Segments.Add(_lookupTablesBuilder);
            Segments.Add(_nameTableBuilder);
        }