AddMvc 和 AddMvcCore 源码

AddMvc 源码

/// <summary>
/// Adds MVC services to the specified <see cref="IServiceCollection" />.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>
/// <returns>An <see cref="IMvcBuilder"/> that can be used to further configure the MVC services.</returns>
public static IMvcBuilder AddMvc(this IServiceCollection services)
{
    if (services == null)
    {
        throw new ArgumentNullException(nameof(services));
    }

    var builder = services.AddMvcCore();

    builder.AddApiExplorer();
    builder.AddAuthorization();

    AddDefaultFrameworkParts(builder.PartManager);

    // Order added affects options setup order

    // Default framework order
    builder.AddFormatterMappings();
    builder.AddViews();
    builder.AddRazorViewEngine();
    builder.AddRazorPages();
    builder.AddCacheTagHelper();

    // +1 order
    builder.AddDataAnnotations(); // +1 order

    // +10 order
    builder.AddJsonFormatters();

    builder.AddCors();

    return new MvcBuilder(builder.Services, builder.PartManager);
}

AddMvcCore源码

/// <summary>  
/// Adds essential MVC services to the specified <see cref="IServiceCollection" />.  
/// </summary>  
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>  
/// <returns>An <see cref="IMvcCoreBuilder"/> that can be used to further configure the MVC services.</returns>  
public static IMvcCoreBuilder AddMvcCore(this IServiceCollection services)  
{  
	if (services == null)  
	{  
		throw new ArgumentNullException(nameof(services));  
	}  

	var partManager = GetApplicationPartManager(services);  
	services.TryAddSingleton(partManager);  

	ConfigureDefaultFeatureProviders(partManager);  
	ConfigureDefaultServices(services);  
	AddMvcCoreServices(services);  

	var builder = new MvcCoreBuilder(services, partManager);  

	return builder;  
}

相关文章:

1,AddMvc And AddMvcCore Method In ASP.NET Core MVC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值