Инициализаторы модулей - это функция CLR, которые не доступны непосредственно на С# или VB.NET. Они представляют собой глобальные статические методы с именем .cctor
, которые гарантированно выполняются до того, как будут выполнены другие коды (инициализаторы типов, статические конструкторы) в сборке. Недавно я хотел использовать это в проекте, и взломал собственное решение (консольная программа/задача msbuild), используя Mono.Cecil, но мне было интересно
-
Есть ли способ обмануть компилятор С# в интерпретаторе интеллектуального модуля? Любые атрибуты (например, CompilerGenerated, SpecialName) или другие обманки, которые могут быть использованы?
-
Использует ли С#/VB.NET когда-либо эти инициализаторы для какой-либо цели? Из того, что я видел, они используются управляемым С++ для некоторых целей взаимодействия, но я не мог найти ссылки на них, которые используются для других целей. Любые идеи?