コペンハーゲンのMicrosoftOfficeで彼が行ったビデオ講義でJonSkeetのMiscUtilを見るまで、アセンブリにはmain()メソッドが1つしかないと思っていました。
だから、私は次のような2つの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オブジェクトを設定しましたが、機能しました。さて、苦痛の原因はありません。次に、この情報がアセンブリのどこに正確に格納されているかを確認したかったので、コンパイルされたバイナリをリフレクターで開いたところ、その効果のメタデータはまったく表示されませんでした。
そのような情報が、逆アセンブラでは表示できないが16進エディタでは表示できるPEイメージのマニフェストまたはCOFFヘッダーに書き込まれるのではないかと思います。