c# - 如何和谁在.net core 中调用启动类的 ConfigureServices 和 Configure 方法
问题描述
众所周知,Program.cs 的 Main 方法是应用程序的入口点。正如您在我们创建任何项目时创建的 .net 核心默认代码中看到的那样。
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
在启动类中,我们有两个 In-build 方法ConfigureServices
,Configure
如下所示。
public void ConfigureServices(IServiceCollection services)
{
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
}
我只想知道这些方法是如何被调用的。正如我们所知,要调用任何方法,我们必须创建类的对象并使用该对象我们可以执行该方法,然后这些(ConfigureServices
和Configure
)方法如何在不创建任何对象的情况下执行。
请帮助我深入了解。
解决方案
这些方法由 ASP.NET Core 框架调用。请注意,在您的Main
方法中,您有此调用:
.UseStartup<Startup>()
在哪里指定用于启动的类,在本例中为Startup
. 和方法按约定调用ConfigureServices
。Configure
如果在扩展中指定的类中找到这些方法UseStartup
,它们将被调用。
推荐阅读
- ios - 在异步工作完成之前关闭返回数据
- react-native - 如何从另一个组件以编程方式在 React Native 中更改选项卡栏图标?
- mongodb - 从不同的容器连接到 mongo - 连接被拒绝
- java - 给定邻接规则和无序数组,返回符合规则的数组
- java - 在 Eclipse 中生成 JavaDocs 时出现“未找到模块”消息
- c++ - 失败,错误 87:参数不正确。如何判断哪个参数不正确?
- java - Runtime.getRuntime().exec(command) 不做任何事情
- vue.js - 如何在 if 条件下设置数据变量的值
- python - 将 Tensorflow Frozen Graph 转换为 UFF 以进行 TensorRT 推理
- java - Head First Java 问题 - 找不到主要方法