Adding params overloads for AddControllersAsServices
- Moved null checks - Tweaked XML docs
This commit is contained in:
parent
04453a2b4f
commit
6737a1f243
|
|
@ -7,6 +7,7 @@ using System.Reflection;
|
||||||
using Microsoft.AspNet.Mvc;
|
using Microsoft.AspNet.Mvc;
|
||||||
using Microsoft.AspNet.Mvc.Formatters;
|
using Microsoft.AspNet.Mvc.Formatters;
|
||||||
using Microsoft.AspNet.Mvc.Internal;
|
using Microsoft.AspNet.Mvc.Internal;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.DependencyInjection
|
namespace Microsoft.Extensions.DependencyInjection
|
||||||
{
|
{
|
||||||
|
|
@ -62,8 +63,21 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
/// discovery.
|
/// discovery.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
|
/// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
|
||||||
/// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register in the
|
/// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register.</param>
|
||||||
/// <paramref name="services"/> and used for controller discovery.</param>
|
/// <returns>The <see cref="IMvcBuilder"/>.</returns>
|
||||||
|
public static IMvcBuilder AddControllersAsServices(
|
||||||
|
this IMvcBuilder builder,
|
||||||
|
params Type[] controllerTypes)
|
||||||
|
{
|
||||||
|
return builder.AddControllersAsServices(controllerTypes.AsEnumerable());
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Register the specified <paramref name="controllerTypes"/> as services and as a source for controller
|
||||||
|
/// discovery.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
|
||||||
|
/// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register.</param>
|
||||||
/// <returns>The <see cref="IMvcBuilder"/>.</returns>
|
/// <returns>The <see cref="IMvcBuilder"/>.</returns>
|
||||||
public static IMvcBuilder AddControllersAsServices(
|
public static IMvcBuilder AddControllersAsServices(
|
||||||
this IMvcBuilder builder,
|
this IMvcBuilder builder,
|
||||||
|
|
@ -74,17 +88,26 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
throw new ArgumentNullException(nameof(builder));
|
throw new ArgumentNullException(nameof(builder));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (controllerTypes == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(controllerTypes));
|
|
||||||
}
|
|
||||||
|
|
||||||
ControllersAsServices.AddControllersAsServices(builder.Services, controllerTypes);
|
ControllersAsServices.AddControllersAsServices(builder.Services, controllerTypes);
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Registers controller types from the specified <paramref name="assemblies"/> as services and as a source
|
/// Registers controller types from the specified <paramref name="controllerAssemblies"/> as services and as a source
|
||||||
|
/// for controller discovery.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
|
||||||
|
/// <param name="controllerAssemblies">Assemblies to scan.</param>
|
||||||
|
/// <returns>The <see cref="IMvcBuilder"/>.</returns>
|
||||||
|
public static IMvcBuilder AddControllersAsServices(
|
||||||
|
this IMvcBuilder builder,
|
||||||
|
params Assembly[] controllerAssemblies)
|
||||||
|
{
|
||||||
|
return builder.AddControllersAsServices(controllerAssemblies.AsEnumerable());
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registers controller types from the specified <paramref name="controllerAssemblies"/> as services and as a source
|
||||||
/// for controller discovery.
|
/// for controller discovery.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
|
/// <param name="builder">The <see cref="IMvcBuilder"/>.</param>
|
||||||
|
|
@ -99,11 +122,6 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
throw new ArgumentNullException(nameof(builder));
|
throw new ArgumentNullException(nameof(builder));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (controllerAssemblies == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(controllerAssemblies));
|
|
||||||
}
|
|
||||||
|
|
||||||
ControllersAsServices.AddControllersAsServices(builder.Services, controllerAssemblies);
|
ControllersAsServices.AddControllersAsServices(builder.Services, controllerAssemblies);
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ using Microsoft.AspNet.Mvc.ApplicationModels;
|
||||||
using Microsoft.AspNet.Mvc.Formatters;
|
using Microsoft.AspNet.Mvc.Formatters;
|
||||||
using Microsoft.AspNet.Mvc.Internal;
|
using Microsoft.AspNet.Mvc.Internal;
|
||||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.DependencyInjection
|
namespace Microsoft.Extensions.DependencyInjection
|
||||||
{
|
{
|
||||||
|
|
@ -99,8 +100,21 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
/// discovery.
|
/// discovery.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
|
/// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
|
||||||
/// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register in the
|
/// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register.</param>
|
||||||
/// <paramref name="services"/> and used for controller discovery.</param>
|
/// <returns>The <see cref="IMvcCoreBuilder"/>.</returns>
|
||||||
|
public static IMvcCoreBuilder AddControllersAsServices(
|
||||||
|
this IMvcCoreBuilder builder,
|
||||||
|
params Type[] controllerTypes)
|
||||||
|
{
|
||||||
|
return builder.AddControllersAsServices(controllerTypes.AsEnumerable());
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Register the specified <paramref name="controllerTypes"/> as services and as a source for controller
|
||||||
|
/// discovery.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
|
||||||
|
/// <param name="controllerTypes">A sequence of controller <see cref="Type"/>s to register.</param>
|
||||||
/// <returns>The <see cref="IMvcCoreBuilder"/>.</returns>
|
/// <returns>The <see cref="IMvcCoreBuilder"/>.</returns>
|
||||||
public static IMvcCoreBuilder AddControllersAsServices(
|
public static IMvcCoreBuilder AddControllersAsServices(
|
||||||
this IMvcCoreBuilder builder,
|
this IMvcCoreBuilder builder,
|
||||||
|
|
@ -111,17 +125,26 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
throw new ArgumentNullException(nameof(builder));
|
throw new ArgumentNullException(nameof(builder));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (controllerTypes == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(controllerTypes));
|
|
||||||
}
|
|
||||||
|
|
||||||
ControllersAsServices.AddControllersAsServices(builder.Services, controllerTypes);
|
ControllersAsServices.AddControllersAsServices(builder.Services, controllerTypes);
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Registers controller types from the specified <paramref name="assemblies"/> as services and as a source
|
/// Registers controller types from the specified <paramref name="controllerAssemblies"/> as services and as a source
|
||||||
|
/// for controller discovery.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
|
||||||
|
/// <param name="controllerAssemblies">Assemblies to scan.</param>
|
||||||
|
/// <returns>The <see cref="IMvcCoreBuilder"/>.</returns>
|
||||||
|
public static IMvcCoreBuilder AddControllersAsServices(
|
||||||
|
this IMvcCoreBuilder builder,
|
||||||
|
params Assembly[] controllerAssemblies)
|
||||||
|
{
|
||||||
|
return builder.AddControllersAsServices(controllerAssemblies.AsEnumerable());
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registers controller types from the specified <paramref name="controllerAssemblies"/> as services and as a source
|
||||||
/// for controller discovery.
|
/// for controller discovery.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
|
/// <param name="builder">The <see cref="IMvcCoreBuilder"/>.</param>
|
||||||
|
|
@ -136,11 +159,6 @@ namespace Microsoft.Extensions.DependencyInjection
|
||||||
throw new ArgumentNullException(nameof(builder));
|
throw new ArgumentNullException(nameof(builder));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (controllerAssemblies == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(controllerAssemblies));
|
|
||||||
}
|
|
||||||
|
|
||||||
ControllersAsServices.AddControllersAsServices(builder.Services, controllerAssemblies);
|
ControllersAsServices.AddControllersAsServices(builder.Services, controllerAssemblies);
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,18 @@ namespace Microsoft.AspNet.Mvc.Internal
|
||||||
{
|
{
|
||||||
public static void AddControllersAsServices(IServiceCollection services, IEnumerable<Type> types)
|
public static void AddControllersAsServices(IServiceCollection services, IEnumerable<Type> types)
|
||||||
{
|
{
|
||||||
|
if (services == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(services));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (types == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(types));
|
||||||
|
}
|
||||||
|
|
||||||
var controllerTypeProvider = new StaticControllerTypeProvider();
|
var controllerTypeProvider = new StaticControllerTypeProvider();
|
||||||
|
|
||||||
foreach (var type in types)
|
foreach (var type in types)
|
||||||
{
|
{
|
||||||
services.TryAddTransient(type, type);
|
services.TryAddTransient(type, type);
|
||||||
|
|
@ -29,7 +40,18 @@ namespace Microsoft.AspNet.Mvc.Internal
|
||||||
|
|
||||||
public static void AddControllersAsServices(IServiceCollection services, IEnumerable<Assembly> assemblies)
|
public static void AddControllersAsServices(IServiceCollection services, IEnumerable<Assembly> assemblies)
|
||||||
{
|
{
|
||||||
|
if (services == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(services));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (assemblies == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(assemblies));
|
||||||
|
}
|
||||||
|
|
||||||
var assemblyProvider = new StaticAssemblyProvider();
|
var assemblyProvider = new StaticAssemblyProvider();
|
||||||
|
|
||||||
foreach (var assembly in assemblies)
|
foreach (var assembly in assemblies)
|
||||||
{
|
{
|
||||||
assemblyProvider.CandidateAssemblies.Add(assembly);
|
assemblyProvider.CandidateAssemblies.Add(assembly);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue