Я уверен, что это просто, но я не могу найти объяснения.C# дизассемблирование по умолчанию пространство имен модуль класса
При разборке .net с помощью ILSpy или ILDASM в пространстве имен по умолчанию есть класс <module>
.
Почему и как его компилирует? у меня есть это:
using abc;
using System;
internal class <Module>
{
static <Module>()
{
AssemblyLoader.Attach();
}
}
internal interface ISomething
{
}
Это не декларация стандарт. Если я воссоздаю проект C#, как бы добавить это? Также способ, которым я его вижу, находится в статическом конструкторе и будет выполняться перед точкой входа, поэтому, если я поместил AssemblyLoader.Attach();
в свой Main() или в статический конструктор Program
(я использую шаблон консольного приложения), это должно сделать трюк, не так ли?
[C# - понимать имя класса add <> symbol] (http://stackoverflow.com/questions/19615662/how-to-understand-the-class-name-add-symbol) –
[Инициализаторы модулей в C# ] (http://stackoverflow.com/a/17379410/399414) –
Это незаконный синтаксис для C#, но не для IL. Компилятор генерирует эти типы неявных классов все время по множеству причин. Короткий ответ: нет, вы не можете воссоздать это. – Abion47