是否可以在 .NET Main 方法之前执行任何用户提供的代码?
如果代码必须是非托管的,这是可以接受的。
询问的原因是,这可能是解决在显示任何 UI 元素之前调用 SetCurrentProcessExplicitAppUserModelID 问题的一种方法(如在Windows 任务栏中对单独的进程进行分组中所述)
是否可以在 .NET Main 方法之前执行任何用户提供的代码?
如果代码必须是非托管的,这是可以接受的。
询问的原因是,这可能是解决在显示任何 UI 元素之前调用 SetCurrentProcessExplicitAppUserModelID 问题的一种方法(如在Windows 任务栏中对单独的进程进行分组中所述)
在 C# 中,您可以将静态构造函数添加到包含该main
方法的类。静态构造函数中的代码将在之前执行main
。
静态构造函数将在 Main 之前执行,但前提是该类实际上被某些东西引用。例如:
class ClassWStaticCon
{
static ClassWStaticCon()
{
Console.WriteLine("Hello world!");
}
}
...
static void Main(string[] args)
{
Console.WriteLine("Hello main.");
}
将打印:
楼主你好。
class ClassWStaticCon
{
public static int SomeField;
static ClassWStaticCon()
{
Console.WriteLine("Hello world!");
}
}
...
static void Main(string[] args)
{
ClassWStaticCon.SomeField = 0;
Console.WriteLine("Hello main.");
}
将打印:
你好世界!楼主你好。
如果您想控制执行顺序,请在单个静态“初始化所有主要内容”类中使用操作队列委托http://msdn.microsoft.com/en-us/library/018hxwa8.aspx 。