예제 #1
0
        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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        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);
        }