var builder = new ContainerBuilder();
var container = builder.Build();
var services =
container.ComponentRegistry.Registrations.SelectMany(x => x.Services)
.OfType<IServiceWithType>()
.Select(x => x.ServiceType);
Dictionary<string, List<Type>> assemblyNames = new Dictionary<string, List<Type>>();
foreach (var service in services)
{
var assemblyFullName = service.Assembly.FullName;
if (!assemblyNames.ContainsKey(assemblyFullName))
{
assemblyNames.Add(assemblyFullName, new List<Type> {service});
}
else
{
assemblyNames[assemblyFullName].Add(service);
}
}
LogUtil.CreateLog(LogLevel.Message, $"assemblyNames.Count = {assemblyNames.Count}");
int i = 0;
StringBuilder stringBuilder;
foreach (var assemblyName in assemblyNames.Keys)
{
stringBuilder = new StringBuilder();
i++;
var value = assemblyNames[assemblyName];
stringBuilder.AppendLine($"index={i},{assemblyName} with {value.Count} registered service");
foreach (var item in value)
{
stringBuilder.AppendLine($"{item}");
}
LogUtil.CreateLog(LogLevel.Message, stringBuilder.ToString());
}