ASP.NET Core 程序集注入(二)

public void ConfigureServices(IServiceCollection services)
{
    string strValue = Configuration.GetSection("Appsetings").GetSection("key").Value;
    foreach (var item in GetClassName(strValue))
    {
        foreach (var typeArray in item.Value)
        {
            services.AddScoped(typeArray, item.Key);
        }
    }

    services.AddMvc();
}

private static Dictionary<Type, Type[]> GetClassName(string assemblyName)
{
    if (!String.IsNullOrEmpty(assemblyName))
    {
        Assembly assembly = Assembly.Load(assemblyName);
        List<Type> ts = assembly.GetTypes().ToList();

        var result = new Dictionary<Type, Type[]>();
        foreach (var item in ts.Where(s => !s.IsInterface))
        {
            var interfaceType = item.GetInterfaces();
            if (item.IsGenericType) continue;
            result.Add(item, interfaceType);
        }
        return result;
    }
    return new Dictionary<Type, Type[]>();
}

猜你喜欢

转载自www.cnblogs.com/zhaoshujie/p/12212662.html