在启动期间自动在引用的程序上运行代码??这叫什么



在 .NET 中,有一些东西可以在加载程序集时自动运行引用程序集中的一段代码。

例如,您可以使用位于项目 Foo(A 类库)中的某种属性来修饰一个类。而项目Bar(一个Web应用程序)只是引用项目Foo。当 Bar 加载时,Foo 中的装饰代码会以某种方式运行。我相信这是一个较新的功能。

有人能说出这个功能叫什么吗?

更新:谢谢湿婆!不是模块初始化。虽然它让我找到了正确的答案。PreApplicationStartMethod,它在.NET中受支持!谢谢大家!!

原来我正在寻找PreApplicationStartMethod!谢谢大家!

你可能也看看Fody。Fody 是"用于编织 .net 程序集的可扩展工具",您可以将其作为 nuget 包安装。有一个称为模块初始值设定项的 fody 加载项。在引擎盖下使用,在其他答案中已经提到的模块初始值设定项,但带走了丰满。

从文档中:

它的作用:在目标程序集中查找名为 ModuleInitializer 的类,其形式如下:

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

然后,它将以下代码注入目标程序集的模块初始值设定项。将程序集加载到内存中时将调用此代码

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

你碰巧指的是模块初始值设定项吗?它们能够完成您描述的事情,但似乎在 C# 中不受支持。是的,它们是 CLR 的一部分,但不是 C# 语言本身的一部分。

与进一步信息和研究的一些链接:

http://blogs.msdn.com/b/junfeng/archive/2005/11/19/494914.aspx

C# 中的模块初始值设定项

.Net:加载程序集时运行代码 - 感谢J...指出此链接

如果我没错,那么您正在寻找"模块初始值设定项"。看看这个

您是否正在寻找模块初始值设定项?

最新更新