Modulinitialisierer in C #

Modulinitialisierer sind eine Funktion der CLR, die in C # oder VB.NET nicht direkt verfügbar sind. Sie sind globale statische Methoden mit dem Namen.cctor Diese werden garantiert ausgeführt, bevor ein anderer Code (Typinitialisierer, statische Konstruktoren) in einer Assembly ausgeführt wird. Ich wollte das kürzlich in einem Projekt verwenden undhackte meine eigene Lösung zusammen (Konsolenprogramm / msbuild task) mit Mono.Cecil, aber ich habe mich gefragt:

Gibt es eine Möglichkeit, den C # -Compiler dazu zu bringen, Modulinitialisierer auszugeben? Welche Attribute (z. B. CompilerGenerated, SpecialName) oder andere Tricks könnten verwendet werden?

Werden diese Initialisierer von C # / VB.NET jemals selbst für einen bestimmten Zweck ausgegeben? Soweit ich gesehen habe, werden sie von Managed C ++ für einige Interop-Zwecke verwendet, aber ich konnte keinen Hinweis darauf finden, dass sie für andere Zwecke verwendet werden. Irgendwelche Ideen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage