Entladen klingt am einfachsten, aber das möchten Sie nicht sehr oft tun; ehrlich gesagt, würde ich jede routinemäßige Anforderung, dies zu tun, sehr bezweifeln.
Wenn Sie es tun wollten ohne entladen, müssten Sie von Fall zu Fall schauen, um die Auswirkungen zu verstehen. Insbesondere das zwangsweise Setzen von "number" auf null, das vom statischen Konstruktor/type initializer/static field initializer auf einen Wert gesetzt wurde, kann die Anwendung gründlich durchbrechen.
Beachten Sie, dass statische Variablen selten für Web-Anwendungen geeignet sind, außer vielleicht für Caches (und müssen dann sorgfältig verwaltet werden).
Wenn Sie wirklich Daten wie diese haben zu tun, anstatt mehrere statische Variablen können Sie bei Instanz Variablen auf einer Zustandsklasse suchen, die Hilfe als pseudo-Singleton ist - dann nur Sie eine Referenz haben pro Cluster tauschen Daten.
Etwas, das könnte eine Überlegung wert ist, ein Ereignis irgendwo mit, dass der statische Code abonnieren können nur einmal, wenn sich die Initialisierung, dann das Ereignis auslösen, wenn nötig, das heißt
myStaticData = new SomeExpensiveThreadSafeCacheDictionary();
GlobalKillSwitch.ResetCache += delegate { myStaticData.Clear(); };
Könnten Sie mehr geben Gründe dafür und ob es machbar * nicht * wäre, statische Variablen zu verwenden, um damit zu beginnen? –
eine Web-App mit statischen Variablen ?? klingt sehr abenteuerlich und nicht wirklich zum Lastenausgleich geeignet. – Matten
Rekursive Reflexion der gesamten Baugruppe, vielleicht? Damit kann man nichts falsch machen –