Skip to content
Adds a module initializer to an assembly.
C#
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
AssemblyToProcess
ModuleInit.Fody
ModuleInit
Tests
.editorconfig
.gitattributes
.gitignore
Directory.Build.props
ModuleInit.sln
ModuleInit.sln.DotSettings
appveyor.yml
license.txt
package_icon.png
readme.md

readme.md

ModuleInit.Fody

Chat on Gitter NuGet Status

Adds a module initializer to an assembly.

This is an add-in for Fody

It is expected that all developers using Fody either become a Patron on OpenCollective, or have a Tidelift Subscription. See Licensing/Patron FAQ for more information.

Usage

See also Fody usage.

NuGet installation

Install the ModuleInit.Fody NuGet package and update the Fody NuGet package:

PM> Install-Package Fody
PM> Install-Package ModuleInit.Fody

The Install-Package Fody is required since NuGet always defaults to the oldest, and most buggy, version of any dependency.

Add to FodyWeavers.xml

Add <ModuleInit/> to FodyWeavers.xml

<Weavers>
  <ModuleInit/>
</Weavers>

What it does

Based on Einar Egilsson's suggestion using cecil to create module initializers [http://tech.einaregilsson.com/2009/12/16/module-initializers-in-csharp/]

Finds a class, in the target assembly, named 'ModuleInitializer' with the following form.

public static class ModuleInitializer
{
    public static void Initialize()
    {
        //Init code
    }
}

Injects the following code into the module initializer of the target assembly. This code will be called when the assembly is loaded into memory

static <Module>()
{
    ModuleInitializer.Initialize();
}

Icon

Icon courtesy of The Noun Project

You can’t perform that action at this time.