zoukankan      html  css  js  c++  java
  • .NET Core自动注册服务

    /// <summary>  
            /// 自动注册服务——获取程序集中的实现类对应的多个接口
            /// </summary>
            /// <param name="services">服务集合</param>  
            /// <param name="assemblyName">程序集名称</param>
            public void AddAssembly(IServiceCollection services, string assemblyName)
            {
                if (!String.IsNullOrEmpty(assemblyName))
                {
                    Assembly assembly = Assembly.Load(assemblyName);
                    List<Type> ts = assembly.GetTypes().Where(u => u.IsClass && !u.IsAbstract && !u.IsGenericType).ToList();
                    foreach (var item in ts.Where(s => !s.IsInterface))
                    {
                        var interfaceType = item.GetInterfaces();
                        if (interfaceType.Length == 1)
                        {
                            services.AddTransient(interfaceType[0], item);
                        }
                        if (interfaceType.Length > 1)
                        {
                            services.AddTransient(interfaceType[1], item);
                        }
                    }
                }
            }
    

      在ConfigureServices 调用 AddAssembly(services, "RecCore.Services");

  • 相关阅读:
    C#中的委托和事件(续)
    C# 中的委托和事件
    玩转JS插件系列
    gusfield
    线性规划
    后缀自动机
    bitset
    二维树状数组
    线段树合并
    求凸包
  • 原文地址:https://www.cnblogs.com/Mzg121584668/p/14756368.html
Copyright © 2011-2022 走看看