【问题标题】:How to Create Global.asax in Winform Application? - C#/.NET如何在 Winform 应用程序中创建 Global.asax? - C#/.NET
【发布时间】:2010-05-17 18:35:27
【问题描述】:

我正在尝试在 Winform 中创建 Global.asax。我可以在 ASP.NET 中做到这一点,但我找不到 Windows 应用程序的方法。任何帮助将不胜感激。

我有一个名为 DataAccessLayer 的单例类,我只需要实例化一次,因此我可以在应用程序的任何位置轻松调用它的方法/属性。

【问题讨论】:

    标签: c# .net asp.net winforms


    【解决方案1】:

    您无法将Global.asax 添加到winform 应用程序,就像您无法添加aspx 页面一样。它们是 webforms 的一部分。

    Global.asax 的目的是定义应用程序和会话事件和对象。您可以通过您的 winform 应用程序的 Main() 方法执行此操作。

    【讨论】:

      【解决方案2】:

      这是因为 Global.asax 只为 Asp.NET 应用程序设计。你想达到什么目的?我们可能会为您提供替代解决方案。

      只是猜测,但 global.asax 更流行的用途之一是用于应用程序范围的异常处理。如果这是您的目标,您应该看到this previous post。否则,请提出一个新问题,详细说明您要完成的工作。

      【讨论】:

      • “global.asax 更流行的用途之一是用于应用程序范围。”是的,这就是我正在寻找的东西。我需要在 Global.asax 中实例化 DataAccessLayer 对象,因此我不必在每个方法中都创建 DataAccessLayer 对象。我在 Global.asax 中启动它一次,然后在 Businesss 对象类中我使用点调用所需的方法。
      • 对于您要完成的工作,@Joe Enos 的回答很好。
      【解决方案3】:

      如果您只需要一个全局访问点,请放入一个 Global.cs 普通类,并将您的静态引用放入其中。

      【讨论】:

        【解决方案4】:

        我的 DataAccessLayer 类设置为 Singleton (sealed)

        【讨论】:

        • sealed 不会使您的类成为单例,而是使其不可继承
        • 您不应该添加这样的 cmets 作为答案。使用您的问题和每个答案下方的评论按钮(如果您没有看到 add comment 按钮,那么您还没有足够的声誉)。
        • 他没有足够的声誉来发表评论。
        • @Aren B:您不需要声誉来评论您自己的问题或其任何答案。
        【解决方案5】:

        听起来你想加载全局变量,然后在程序结束时执行和卸载。
        使用像 Oded 提到的静态类。
        您还可以查看 Application.ApplicationExit 事件以获得 Application_End 和 Session_End 的等效项 http://msdn.microsoft.com/en-us/library/system.windows.forms.application.applicationexit.aspx

        【讨论】:

          猜你喜欢
          • 2021-11-10
          • 1970-01-01
          • 1970-01-01
          • 2011-09-22
          • 2023-03-06
          • 1970-01-01
          • 2011-12-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多