相关疑难解决方法(0)

在装配加载时初始化库

我有一个.net库dll,就像一个函数库.有许多静态类型和静态方法.

我需要运行一些初始化代码来设置库以供使用.

当程序集加载时,是否有办法确保运行特定方法?像AppDomain.AssemblyLoad之类的东西,但是从程序集本身自动调用.我在想,也许有可能会使用像AssemblyAttribute这样的东西?

目前我在静态构造函数中有这个初始化代码,但由于这是一个包含许多入口点的库,因此无法保证将使用此特定类型.

谢谢!

.net c# assemblies

25
推荐指数
3
解决办法
2万
查看次数

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

模块初始值设定项是CLR的一项功能,无法在C#或VB.NET中直接使用.它们是名为的全局静态方法.cctor,保证在执行程序集中的任何其他代码(类型初始化程序,静态构造函数)之前运行.我最近想在一个项目中使用它并使用Mono.Cecil 将我自己的解决方案(控制台程序/ msbuild任务)一起攻击,但我想知道:

  1. 有没有办法欺骗C#编译器发射模块初始化器?任何属性(例如CompilerGenerated,SpecialName)或其他可以使用的技巧?

  2. C#/ VB.NET是否会出于某种目的自己发出这些初始化器?从我所看到的它们被托管C++用于某些互操作目的,但我找不到任何引用它们用于其他目的.有任何想法吗?

c# clr clr-module-initializer

23
推荐指数
3
解决办法
8654
查看次数

标签 统计

c# ×2

.net ×1

assemblies ×1

clr ×1

clr-module-initializer ×1