在 .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...指出此链接
如果我没错,那么您正在寻找"模块初始值设定项"。看看这个
您是否正在寻找模块初始值设定项?