解决vs2005下Global.asax缺少cs文件的使用不便

本文介绍了解决VS2005中Global.ascx缺乏对应的.cs文件的问题,通过创建partial类Global.cs并继承System.Web.HttpApplication,实现更灵活的应用程序事件管理。

VS2005中发现Global.ascx没有cs文件,所有程序都需要写在一个文件,感觉好像又回到了CodeBeside时代,相当不给力~

于是,通过在App_Code文件夹下创建一个类Global.cs,同时该类使用partial修饰且继承System.Web.HttpApplication。

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /// <summary> /// Global 的摘要说明 /// </summary> public partial class Global : System.Web.HttpApplication { #region 默认构造函数 public Global() { // // TODO: 在此处添加构造函数逻辑 // } #endregion void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 } void Application_End(object sender, EventArgs e) { // 在应用程序关闭时运行的代码 } void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 } void Session_Start(object sender, EventArgs e) { // 在新会话启动时运行的代码 } void Session_End(object sender, EventArgs e) { // 在会话结束时运行的代码。 // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer } }

然后Global.asax继承该类即可~

<%@ Application Language="C#" Inherits="Global" %>

### Global.asax 的介绍 Global.asax 文件用于处理与整个应用程序相关的事件。其中所有方法都可通过应用程序的代码调用,这也是其名为“Global”的原因。在 WebSite 默认的 Global.asax 模板中,不生成 Global.asax.cs,采用内联代码方式编写在 Global.asax 中;也可以自己创建模板,还能在 App_Code 增加一个 Global.asax.cs,然后在 Global.asax使用 `<%@ Application Codebehind="App_Code\Global.asax.cs" Inherits="Global" Language="C#" %>` 引用该文件。除模块外,还可将生命周期事件的处理程序添加到 Global.asax.cs 文件,这些处理程序在所配置的模块中的处理程序之后运行 [^1][^2][^3]。 ### Program.cs 的介绍 在 .NET Core 的默认项目中,不存在 Global.asax 文件,取而代之的是 Program.cs 文件。该文件提供了一个 Main 方法,作为程序的主入口。默认代码会创建 WebHost 并运行该 host,这种方式与其他非 Web .NET 程序保持一致 [^4]。 ### 使用方法 - **Global.asax**:可以直接在 Global.asax 文件使用内联代码编写应用程序事件处理逻辑;或者创建 Global.asax.cs 文件,在其中编写逻辑,并在 Global.asax 中引用该文件 [^1]。 - **Program.cs**:在 .NET Core 项目里,通过编写 Main 方法来创建和配置 WebHost,然后启动该 WebHost。以下是一个简单示例: ```csharp using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); } ``` ### 区别 - **适用项目类型**:Global.asax 主要用于传统的 ASP.NET 项目;而 Program.cs.NET Core 及 .NET 5+ 项目的主入口文件 [^1][^4]。 - **功能定位**:Global.asax 侧重于处理应用程序的生命周期事件;Program.cs 主要负责项目的启动和 WebHost 的配置 [^2][^4]。 - **代码结构**:Global.asax 可采用内联代码或分离代码文件(如 Global.asax.cs)的方式;Program.cs 以 Main 方法作为程序入口,代码结构更符合传统 .NET 程序的主入口模式 [^1][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值