簡體   English   中英

C#反匯編默認名稱空間模塊類

[英]C# disassembly default namespace module class

我敢肯定這很簡單,但是我找不到解釋。

使用ILSpy或ILDASM拆卸.net時,默認名稱空間中有一個名為<module>的類。

為什么以及如何將編譯器放置在此處? 我有這個:

using abc;
using System;

internal class <Module>
{
    static <Module>()
    {
        AssemblyLoader.Attach();
    }
}
internal interface ISomething
{
}

這不是標准的聲明。 如果我正在重新創建C#項目,該如何添加? 同樣,我看到它的方式是在靜態構造函數中,並且將在入口點之前執行,因此如果我將AssemblyLoader.Attach(); 在我的Main()或Program的靜態構造函數中(我正在使用控制台應用程序模板),這應該可以解決問題,對嗎?

您不能從VS或C#代碼直接將代碼添加到<Module> 您可以從IL中進行操作。

如果您反匯編代碼,則可以放置一個靜態.cctor ,該最終將成為<Module>構造函數。 它必須在任何.class之外

.method private hidebysig specialname rtspecialname static void .cctor () cil managed 
{
    //put your code here
}

您可以在我的github回購中看到一個示例

或者使用Fody的工具,特別是ModuleInit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM