Executing code before Main in .NET

Costas

Administrator
Staff member
C#:
class Initializer
{
    // The static ctor runs before the module initializer
    static Initializer() => Console.WriteLine("Initializer.cctor");

    [ModuleInitializer]
    public static void Initialize1() => Console.WriteLine("Module Initializer 1");

    [ModuleInitializer]
    public static void Initialize2() => Console.WriteLine("Module Initializer 2");
}

class StartupHook
{
    static StartupHook() => Console.WriteLine("StartupHook.cctor");

    // Start the application with the environment variable
    // DOTNET_STARTUP_HOOKS=myapp.dll (use full path to the assembly)
    public static void Initialize() => Console.WriteLine("Startup hook");
}

class Program
{
    static void Main() => Console.WriteLine("Hello, World!");
}

bVmjiBR.png



src - https://www.meziantou.net/executing-code-before-main-in-dotnet.htm
 
Top