NET6完整项目实战系列第3篇:Program.cs 文件解析

作者:屏风马

出处:屏风马 - 博客园

本文版权归作者和博客园共有,转载请注明原文链接和出处。

最后来看一看 Program.cs 这个文件中有哪些内容。

Program.cs 是整个Web应用程序的入口文件,.NET6 之前有一个入口函数 Main() , NET6中去掉了 ,其中的代码没有任何函数定义,

打开就可以开干了,这里的语句就是顶级语句, 代码非常简洁,如下:

关于顶级语句可以参考微软官网的介绍:

https://docs.microsoft.com/zh-cn/dotnet/csharp/fundamentals/program-structure/top-level-statements,

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/proposals/csharp-9.0/top-level-statements,

摘录如下:

顶级语句在编译过后会生成 Program 类和 Main() 方法(名称不是固定的),方法的签名根据语句的不同而有差异,具体如下:

 

下面介绍一下各条语句的作用:

第1行, var builder = WebApplication.CreateBuilder(args);   WebApplication 表示整个Web应用程序 ,调用CreateBuilder()方法创建一个

WebApplicationBuilder 对象。

第4行,builder.Services.AddRazorPages();  WebApplicationBuilder 对象添加 RazorPages 服务 , 也可以添加其他服务,比如依赖注入、

登录等。

第6行,var app = builder.Build();构造一个 WebApplication 实例。

第12~15行,添加一个异常处理中间件,此中间件发生作用的条件是:当前运行环境必须是开发环境 ,如果 Web 应用程序出现异常,

则跳转到 Error.cshtml 这个页面,如下图,微软已经很贴心的帮我们把异常页都准备好了。

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
}

第17行,app.UseStaticFiles(); 启用静态文件中间件,加上这行代码后, 我们在浏览器中才能访问 wwwroot 目录下的文件,否则会报错。

我们先在解决方案的 wwwroot目录增加一个图片文件如下:

在浏览器中访问此图片如下:

去掉 app.UseStaticFiles(); 再访问是这样的:

同样的道理,如果我们在项目中需要把某些文件放在新的目录中,需要在 Program.cs 中启用相应的中间件才行,

具体怎么做我们想后续的演示中碰到了再展开。

第19行 ,app.UseRouting(); 启用路由中间件,启用后在浏览器中输入网址 Web应用才能正确解析。

第21行,app.UseAuthorization(); 启用权限验证中间件,当我们的网站是基于身份认证的话需要用到,

一般购物网站都需要启用,如果只是纯展示性的比如企业官网等可以去掉。

第23行,app.MapRazorPages(); 启用Razor Pages中间件,如果是MVC应用,则使用 app.UseMvc(); 中间件。

第25行,app.Run(); 启动应用,当我们开始执行WebApp , 浏览器就会帮我们打开网站 Index 页面了,

如果去掉这一行,报错如下:没有与此对象关联的进程。

Web应用程序已经无法运行了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值