如何在WPF中定义自己的main方法

时间:2014-01-13 17:07:44

标签: c# wpf

我想在WPF中覆盖orignal main方法。

我想在origina main方法的beginnig中添加内容。怎么做?

似乎必须在App.xaml.cs文件中完成,但仍然不知道如何实现它。

3 个答案:

答案 0 :(得分:6)

我不相信你可以,直接。设计者介绍了自己的Main方法。

所做的是使用Main方法创建您自己的单独课程,然后在您想要的时候调用App.Main

using System;

namespace AppWithCustomMain
{
    class CustomMain
    {
        [STAThread]
        static void Main()
        {
            Console.WriteLine("CustomMain!");
            App.Main();
        }
    }
}

然后将项目属性中的“启动对象”构建设置设置为CustomMain,它应首先调用Main方法,然后调用App.Main

这假设您确实需要在其他任何事情之前进入。通常,您只需订阅Application.Startup事件,或覆盖Application子类中的Application.OnStartup

答案 1 :(得分:2)

您可以在Run()课程中引入新的App - 方法(是的,你是对的 - 它必须在App.xaml.cs内完成 - 制作你的东西,然后调用基础实现:

public partial class App : Application
{
    public new void Run()
    {
        // Do your stuff here

        // Call the base method
        base.Run();
    }
}

答案 2 :(得分:1)

您不应该真正覆盖应用程序的main方法,如果要在应用程序启动时调用特定方法,则可以覆盖OnStartup类的App方法(文件App.xaml.cs)。

以下是一个例子:

/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        // Your code here
    }
}