private void RepackExportedTypes()

in ILRepack/Steps/TypesRepackStep.cs [85:123]


        private void RepackExportedTypes()
        {
            var targetAssemblyMainModule = _repackContext.TargetAssemblyMainModule;
            _logger.Info("Processing exported types");
            foreach (var m in _repackContext.MergedAssemblies.SelectMany(x => x.Modules))
            {
                foreach (var r in m.ExportedTypes)
                {
                    if (SkipExportedType(r))
                        continue;

                    _repackContext.MappingHandler.StoreExportedType(m, r.FullName, CreateReference(r));
                }
            }

            foreach (var r in _repackContext.PrimaryAssemblyDefinition.Modules.SelectMany(x => x.ExportedTypes))
            {
                _logger.Verbose($"- Importing Exported Type {r} from {r.Scope}");
                _repackImporter.Import(
                    r, targetAssemblyMainModule.ExportedTypes, targetAssemblyMainModule);
            }

            foreach (var m in _repackContext.OtherAssemblies.SelectMany(x => x.Modules))
            {
                foreach (var r in m.ExportedTypes)
                { 
                    if (!ShouldInternalize(r.FullName) &&
                        !SkipExportedType(r))
                    {
                        _logger.Verbose($"- Importing Exported Type {r} from {m}");
                        _repackImporter.Import(r, targetAssemblyMainModule.ExportedTypes, targetAssemblyMainModule);
                    }
                    else
                    {
                        _logger.Verbose($"- Skipping Exported Type {r} from {m}");
                    }
                }
            }
        }