是否可以在.NET Main method之前执行任何用户提供的代码?
如果代码必须不受管理,那将是可以接受的。
问的原因是,这可能是解决在显示任何UI元素之前调用SetCurrentProcessExplicitAppUserModelID的问题的方法(如Grouping separate processes in the Windows Taskbar中所述)
答案 0 :(得分:10)
在C#中,您可以向包含main
方法的类添加静态构造函数。静态构造函数中的代码将在main
之前执行。
答案 1 :(得分:1)
静态构造函数将在Main之前执行,但仅当该类实际被某些东西引用时才会执行。例如:
class ClassWStaticCon
{
static ClassWStaticCon()
{
Console.WriteLine("Hello world!");
}
}
...
static void Main(string[] args)
{
Console.WriteLine("Hello main.");
}
将打印:
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。