Ich habe eine einfache Klasse, die einen statischen Konstruktor und einen Instanzkonstruktor hat. Wenn ich nun die Klasse initialisiere, werden sowohl der statische als auch der Instanzkonstruktor aufgerufen. Nur der statische Konstruktor wird einmal in einer Anwendungsdomäne aufgerufen. Kann ich dieselbe Klasseninitialisierung erneut aufrufen und den statischen Konstruktor erneut initialisieren? Ich habe es versucht, aber es ist nicht passiert? Gibt es eine Möglichkeit, den statischen Konstruktor in der main()-Methode erneut aufzurufen, nachdem die Garbage Collection für die Klasse verwendet wurde?
Hier ist der Code:
public class Employee
{
public Employee()
{
Console.WriteLine("Instance constructor called");
}
static Employee()
{
Console.WriteLine("Static constructor called");
}
~Employee()
{
//Dispose();
}
}
Jetzt in der Hauptmethode aufrufen:
static void Main(string[] args)
{
Employee emp = new Employee();
Employee emp = new Employee();
}
Ausgabe:
Statischer Konstruktor genannt Instanz-Konstruktor genannt Instanz-Konstruktor genannt
Jetzt hat sich das Rauschen nicht mehr gemeldet. Weil es einmal in der Anwendungsdomäne aufgerufen wird. Aber gibt es eine Möglichkeit, wie wir sie erneut aufrufen können, ohne die Anwendungsdomäne zu entladen. Können wir die GC-Klasse hier verwenden?
Danke! Pal