zoukankan      html  css  js  c++  java
  • get all registered services in Autofac

    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());
                }
  • 相关阅读:
    均匀采样单位圆
    3Sum
    查看SQL语句在SQL Server上的执行时间
    ASP.NET页面请求处理
    原型模式
    ASP.NET页面错误处理
    电子商务推荐位商品模型设计
    HttpModule与HttpHandler使用
    装饰者模式
    ASP.NET编程模型
  • 原文地址:https://www.cnblogs.com/chucklu/p/12666825.html
Copyright © 2011-2022 走看看