Configuration 在ASP.NET5中配置组件
在ASP.Net 5中配置组件有不同的方法:Configuration 在ASP.NET5中配置组件,configuration,asp.net-core,Configuration,Asp.net Core,在ASP.Net 5中配置组件有不同的方法: AddXXX方法,用于添加服务 ConfigureXXX方法,用于配置选项 UseXXX方法,用于将中间件注册到管道中 ConfigureXXX()方法负责配置组件或子组件: 公共静态IServiceCollection配置授权( [NotNull]此IServiceCollection服务, [NotNull]操作 公共静态无效配置MVC( [NotNull]此IServiceCollection服务, [NotNull]操作设置(操作) {
- AddXXX方法,用于添加服务
- ConfigureXXX方法,用于配置选项
- UseXXX方法,用于将中间件注册到管道中
公共静态IServiceCollection配置授权(
[NotNull]此IServiceCollection服务,
[NotNull]操作
公共静态无效配置MVC(
[NotNull]此IServiceCollection服务,
[NotNull]操作设置(操作)
{
配置(setupAction);
}
但有时配置XXX有点复杂:
公共静态IServiceCollection配置CookieAuthentication(
[NotNull]此IServiceCollection服务,
[NotNull]i配置配置,
字符串选项(名称)
{
return services.Configure(配置,选项名称);
}
为什么一些现有组件比其他组件更“可配置”
作为一名组件编写者,我应该实践什么
另一个相关问题:
AddXXX&UseXXX有时允许配置组件:
公共静态IMvcBuilder AddMvcCore(
[NotNull]此IServiceCollection服务,
[NotNull]操作设置(操作)
{
配置DefaultServices(服务);
ADDMVCO储备(服务);
配置(setupAction);
返回新的MvcBuilder(){Services=Services,};
}
公共静态IApplicationBuilder使用OAuthAuthentication(
[NotNull]此IApplicationBuilder应用程序,
[NotNull]字符串身份验证方案,
操作配置选项=空)
{
返回app.UseMiddleware(
// [...]
}
基本上,使用三种不同的方法配置选项之间有什么区别?特别是在同一个组件上可用时。因此,对于选项和使用IOptions服务的任何组件,我们的想法是使在堆栈中的任意点配置选项变得容易(添加、使用、配置)它们都是有效的,但秩序确实重要
我们使用的一般模式通常是在任何看起来有用的地方执行操作
public static IServiceCollection ConfigureAuthorization(
[NotNull] this IServiceCollection services,
[NotNull] Action<AuthorizationOptions> configure)
{
return services.Configure(configure);
}
public static void ConfigureMvc(
[NotNull] this IServiceCollection services,
[NotNull] Action<MvcOptions> setupAction)
{
services.Configure(setupAction);
}
public static IServiceCollection ConfigureCookieAuthentication(
[NotNull] this IServiceCollection services,
[NotNull] IConfiguration config,
string optionsName)
{
return services.Configure<CookieAuthenticationOptions>(config, optionsName);
}
public static IMvcBuilder AddMvcCore(
[NotNull] this IServiceCollection services,
[NotNull] Action<MvcOptions> setupAction)
{
ConfigureDefaultServices(services);
AddMvcCoreServices(services);
services.Configure(setupAction);
return new MvcBuilder() { Services = services, };
}
public static IApplicationBuilder UseOAuthAuthentication(
[NotNull] this IApplicationBuilder app,
[NotNull] string authenticationScheme,
Action<OAuthAuthenticationOptions> configureOptions = null)
{
return app.UseMiddleware<OAuthAuthenticationMiddleware<OAuthAuthenticationOptions>>(
// [...]
}