【发布时间】:2016-12-13 10:04:23
【问题描述】:
我确定这很简单,但我找不到解释。
使用 ILSpy 或 ILDASM 反汇编 .net 时,默认命名空间中有一个名为 <module> 的类。
编译器为什么以及如何将它放在那里? 我有这个:
using abc;
using System;
internal class <Module>
{
static <Module>()
{
AssemblyLoader.Attach();
}
}
internal interface ISomething
{
}
这不是标准声明。如果我正在重新创建 C# 项目,我将如何添加它?
另外我看到它的方式是在静态构造函数中,并将在入口点之前执行,所以如果我将 AssemblyLoader.Attach(); 放在我的 Main() 或 Program 的静态构造函数中(我正在使用控制台应用程序模板)这应该可以解决问题,对吗?
【问题讨论】:
-
这对于 C# 是非法的语法,但对于 IL 不是。出于多种原因,编译器始终会生成这些类型的隐式类。简短的回答是,不,你不能重新创建它。
-
是的,我明白为什么这样称呼它,但我想知道如何让编译器输出相同的东西..
-
那么如何在我的项目中实现该调用 - AssemblyLoader.Attach();
标签: c#