示例#1
0
        internal static void EnsureConfigured()
        {
            if (DependencyResolver.Current is ServiceProviderDependencyResolver)
            {
                return;
            }

            var resolver = new ServiceProviderDependencyResolver();

            DependencyResolver.SetResolver(resolver);
        }
示例#2
0
        public static IServiceCollection AddControllers(
            this IServiceCollection services,
            Assembly assembly)
        {
            ServiceProviderDependencyResolver.EnsureConfigured();

            var type = typeof(IController);

            var controllers = assembly.GetExportedTypes().Where(
                t =>
                !t.IsAbstract &&
                !t.IsGenericTypeDefinition).Where(
                t =>
                type.IsAssignableFrom(t) ||
                t.Name.EndsWith("Controller", StringComparison.OrdinalIgnoreCase));

            foreach (var controller in controllers)
            {
                services.AddTransient(controller);
            }

            return(services);
        }