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}");
}
}
}
}