我想在WPF中覆盖orignal main方法。
我想在origina main方法的beginnig中添加内容。怎么做?
似乎必须在App.xaml.cs
文件中完成,但仍然不知道如何实现它。
答案 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
}
}