在过去的几年中,我偶尔会想知道在.NET世界中可用的(着名的)DLL_PROCESS_ATTACH
的等价物。我所说的任何文档都略有简化,最早的类入口点是静态构造函数(cctor),但不能影响when it is called,也不能定义一个保证在任何其他cctor或字段初始化程序之前被调用的cctor ,黑客,如果班级从未使用过,甚至可能根本不会被调用。在调用程序集中的任何方法之前,CLR调用的最早的入口点是什么?
所以,如果你想保证有什么地方初始化之前你组装的任何方法被调用,你不希望有一个cctor添加到您的装配每一个类,你能采取什么办法?或者有没有一个简单的.NET管理解决方案,我错过了这么多年?
为什么?你想做什么? – SLaks 2010-07-29 14:35:46
@SLaks:为什么?在具有多个类的静态实用程序库中,您不希望每个类中的每个方法或cctor都调用全局初始化程序,从而违反DRY。另外,比较现有的'DllMain',它出于某种目的(并且有其缺点)。如果您想钩住或绕行方法或想使用您自己的[AssemblyResolver](http://msdn.microsoft.com/zh-cn/library/system.appdomain.assemblyresolve%28VS.71%29.aspx)或执行其他与装配相关的任务。野外的一些例子是System.Data模块和[msvcm80.dll](http://blogs.msdn.com/b/junfeng/archive/2005/11/19/494914.aspx) – Abel 2010-07-30 10:31:04