我想重写 WPF 中的原始主方法。
我想在 origina main 方法的开头添加内容。 怎么办?
似乎必须在App.xaml.cs
文件中完成,但仍然不知道如何实现它。
我不相信你可以,直接。设计师介绍了自己的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
。
你可以在App
类中引入一个新的Run()
-方法(是的,你是对的 - 它必须在App.xaml.cs
内完成 - ,制作你的东西,然后调用基本实现:
public partial class App : Application
{
public new void Run()
{
// Do your stuff here
// Call the base method
base.Run();
}
}
你不应该真正覆盖应用程序的 main 方法,如果你想在应用程序启动时调用一个特定的方法,你可以覆盖 App
类的 OnStartup
方法(文件 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
}
}