Inicializadores de módulo en C #

Los inicializadores de módulo son una característica del CLR que no están disponibles directamente en C # o VB.NET. Son métodos estáticos globales llamados.cctor se garantiza que se ejecutarán antes de que se ejecute cualquier otro código (inicializadores de tipo, constructores estáticos) en un ensamblaje. Recientemente quise usar esto en un proyecto yhackearon mi propia solución (programa de consola / tarea msbuild) utilizando Mono.Cecil, pero me preguntaba:

¿Hay alguna manera de engañar al compilador de C # para que emita los intializadores de módulos? ¿Algún atributo (por ejemplo, CompilerGenerated, SpecialName) u otro engaño que pueda usarse?

¿Los C # / VB.NET alguna vez emiten estos inicializadores por algún motivo? Por lo que he visto, C ++ administrado los usa para algunos propósitos de interoperabilidad, pero no pude encontrar ninguna referencia a que se usen para otros propósitos. ¿Algunas ideas?

Respuestas a la pregunta(4)

Su respuesta a la pregunta