我曾经认为一个程序集只能有一个 main() 方法,直到我看到 Jon Skeet 的 MiscUtil 在他在哥本哈根的 Microsoft 办公室发表的视频讲座中。
所以,我写了这个小应用程序,它有两个 main() 方法,如下所示:
namespace ManyMains
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
Console.ReadKey();
}
}
class YetAnotherProgram
{
static void Main()
{
Console.WriteLine("Yet another program.");
Console.ReadKey();
}
}
}
我在 Visual Studio 中设置了 StartUp 对象,它起作用了。好吧,不用担心。然后,我想看看这些信息究竟存储在程序集中的什么位置,所以我在反射器中打开了编译后的二进制文件,并且完全没有看到任何元数据。
我想知道是否将此类信息写入清单或 PE 图像的某些 COFF 标头中,这些信息在反汇编程序中看不到,但可以在十六进制编辑器中看到?