我仔细阅读了Microsoft网站上的文档,在两个地方可以设置配置。
我们可以在Startup.cs或Program.cs中进行操作。但是,Program.cs具有与Startup.cs中可用的相同方法。
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureServices(services =>
{
//same as ConfigureServices method in Startup.cs
services.AddAutofac();
})
.Configure(app =>
{
//same as Configure method in Startup.cs
app.UseMvc();
})
.Build();
}
是否存在Startup.cs类的唯一原因是从Program.cs中移走了一些配置?我们是否可以完全删除此类并将整个配置保留在Program.cs中?
致谢
答案 0 :(得分:3)
我们可以完全删除此类,并将整个配置保留在Program.cs中吗?
是
文档说明
Convenience methods
要在不使用
Startup
类的情况下配置服务和请求处理管道,请在主机构建器上调用ConfigureServices
和Configure
便捷方法。对ConfigureServices
的多次调用会相互追加。如果存在多个Configure
方法调用,则使用最后一个Configure
调用。
与实际的 Program.cs 相比,它更多地是关于构建器的配置。那只是用于保存应用程序主条目的默认模板类。
答案 1 :(得分:0)
Program.cs是应用程序的启动位置。
Startup.cs是进行大量配置的地方。
这种分离的想法是基于SOLID原则的第一个原则-SRP(单一责任原则)。 SOLID principles使软件设计更加易于理解,灵活和可维护。
Single Responsibility Principle (SRP)指出,类或方法只能做一件事(或只能做一份工作)。如果您查看Startup.cs,它正是这样做的,这使阅读和理解代码变得很容易。