我曾经认为一个程序集只能有一个main()方法,直到我在Jon Skeet在哥本哈根微软办公室发表的视频讲座中看到了MiscUtil。
于是,我写了这个小应用程序,并添加了两个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头中,这些信息在反汇编器中无法看到,但是可以在十六进制编辑器中看到?