ASP.NET CoreAddMvc和AddMvcCore的区别
Posted braink-1400
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET CoreAddMvc和AddMvcCore的区别相关的知识,希望对你有一定的参考价值。
AddMvcCore() method only adds the core MVC services.
AddMvc() method adds all the required MVC services.
AddMvc() method calls AddMvcCore() method internally.
AddMvcCore()更加简洁,只添加了MVC核心服务。
而AddMvc()添加了MVC所需要的所有组件。
AddMvc()内部调用了AddMvcCore(),这也就使得AddMvcCore()更加重要。
ASP.Net是开源项目,>github地址
贴出AddMvc源码会更加清楚。
public static IMvcBuilder AddMvc(this IServiceCollection services) if (services == null) throw new ArgumentNullException(nameof(services)); var builder = services.AddMvcCore(); // 从这里开始,都是以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源码:
1 public static IMvcCoreBuilder AddMvcCore(this IServiceCollection services) 2 3 if (services == null) 4 5 throw new ArgumentNullException(nameof(services)); 6 7 8 var partManager = GetApplicationPartManager(services); 9 services.TryAddSingleton(partManager); 10 11 ConfigureDefaultFeatureProviders(partManager); 12 ConfigureDefaultServices(services); 13 AddMvcCoreServices(services); 14 15 var builder = new MvcCoreBuilder(services, partManager); 16 17 return builder; 18
转自油管>ASP NET Core AddMvc vs AddMvcCore
以上是关于ASP.NET CoreAddMvc和AddMvcCore的区别的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net core 3 中设置 json 序列化程序设置?