public static IServiceCollection AddAssemblyDependencies(this IServiceCollection services, Assembly entry, params Type[] abstracts) { var executingTypes = new ClassScanner().AllClassUnder(entry, false, false); Register(executingTypes, services, abstracts); return(services); }
/// <summary> /// Scan all dependencies from the highest level. Very useful when you are building a project. /// </summary> /// <param name="services"></param> /// <param name="abstracts"></param> /// <returns></returns> public static IServiceCollection AddScannedDependencies(this IServiceCollection services, params Type[] abstracts) { var executingTypes = new ClassScanner().AllAccessibleClass(false, false); Register(executingTypes, services, abstracts); return(services); }
/// <summary> /// Scan all class from the calling assembly. Very useful when you are building a library. /// </summary> /// <param name="services"></param> /// <param name="abstracts"></param> /// <returns></returns> public static IServiceCollection AddLibraryDependencies(this IServiceCollection services, params Type[] abstracts) { var calling = Assembly.GetCallingAssembly(); var executingTypes = new ClassScanner().AllClassUnder(calling, false, false); Register(executingTypes, services, abstracts); return(services); }
public static IServiceCollection AddScannedDependencies(this IServiceCollection services, params Type[] abstracts) { var executingTypes = new ClassScanner().AllAccessiableClass(false, false); foreach (var item in executingTypes) { AddScanned(item, typeof(ISingletonDependency), (i, e) => services.AddSingleton(i, e), (i) => services.AddSingleton(i), abstracts); AddScanned(item, typeof(IScopedDependency), (i, e) => services.AddScoped(i, e), (i) => services.AddScoped(i), abstracts); AddScanned(item, typeof(ITransientDependency), (i, e) => services.AddTransient(i, e), (i) => services.AddTransient(i), abstracts); } return(services); }