Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net IServiceCollection和IMvcBuilder之间的关系是什么?_.net_.net Core - Fatal编程技术网

.net IServiceCollection和IMvcBuilder之间的关系是什么?

.net IServiceCollection和IMvcBuilder之间的关系是什么?,.net,.net-core,.net,.net Core,我正在学习Asp.NETCore3.1 注意到当我们开始这个项目的时候。 它将转到ConfigureServices并注入服务 public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); } 我的问题是为什么服务可以使用这些扩展方法 我检查了框架 IServiceCollection是一个接口。 IMvcBuilder界面中

我正在学习Asp.NETCore3.1

注意到当我们开始这个项目的时候。 它将转到ConfigureServices并注入服务

   public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews();
    }
我的问题是为什么服务可以使用这些扩展方法

我检查了框架

IServiceCollection是一个接口。 IMvcBuilder界面中有一个名为服务的属性

但还是不明白这是什么关系。 NET如何知道IServiceCollection服务可以使用诸如AddControllersWithViews()、AddMvc()等扩展方法?


谢谢。

IServiceCollection表示将服务注册到IoC容器中的方法。这些扩展方法通常用于简化其他服务的配置

扩展方法需要做几件事:

  • 带有
    参数的方法
    public static void AddSomething(this IServiceCollection ...)
    
  • 命名空间导入到包含具有扩展方法的类的命名空间
  • IMvcBuilder
    恰好是
    AddMvc
    返回以进一步配置ASP.NET核心MVC的内容