1. 程式人生 > >ASP.NET Core2,通過反射批量註入程序集

ASP.NET Core2,通過反射批量註入程序集

interface ont list() where each blog set pes pty

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[]>();
}

ASP.NET Core2,通過反射批量註入程序集