internal static void EnsureConfigured() { if (DependencyResolver.Current is ServiceProviderDependencyResolver) { return; } var resolver = new ServiceProviderDependencyResolver(); DependencyResolver.SetResolver(resolver); }
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); }