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 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。