我遇到我的時候通過自定義裝飾我的主要方法,一件奇怪的事情屬性這樣的:C#的主要方法,通過自定義屬性裝飾
class Program
{
[Attr]
static void Main(string[] args)
{
Console.WriteLine("Main end..");
Console.Read();
}
}
class AttrAttribute : Attribute
{
public AttrAttribute()
{
Console.WriteLine("Hello world!");
}
}
然後控制檯程序不打印任何東西。但是當我調試程序時,我發現屬性AttrAttribute的構造函數和Main方法確實都被執行了。誰能告訴我爲什麼..
如果我評論'Console.WriteLine(「Hello world!」);'在AttrAttribute的構造函數中,程序打印「Main end ..」。
謝謝大家。 (對不起,我的泳池英語。)
我剛剛運行相同的代碼,基本上''AttrAttribute'構造函數正在控制檯甚至存在之前運行。我的猜測是控制檯不會存在,直到控制檯應用程序的入口點「Main」開始執行。你試圖用你的屬性來完成什麼?爲什麼它要打印到控制檯? –
它是探測STA/MTAThread屬性的主機進程。項目+屬性,調試選項卡,取消選項,它將停止。 –
謝謝AdamVenezia,Dexters,Hans Passant。而@Dexters提供的鏈接非常有用。 – Lcng