我有一些类来缓存数据库中的数据,这些类在调用静态构造函数时会加载数据.
我需要在所有这些类中调用静态Reload方法,除了那些尚未初始化的类.
例如:City缓存数据库中的数据
public class City
{
public City Get(string key)
{
City city;
FCities.TryGetValue(key, out city);
return city;
}
private static Dictionary<string, City> FCities;
static City()
{
LoadAllCitiesFromDatabase();
}
public static void Reload()
{
LoadAllCitiesFromDatabase();
}
private static void LoadAllCitiesFromDatabase()
{
// Reading all citynames from database (a very slow operation)
Dictionary<string, City> loadedCities = new Dictionary<string, City>();
...
FCities = loadedCities;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是City可能尚未使用(它可能不会在此服务中使用),因此没有理由从数据库加载它.
我重新加载所有方法看起来很像这样:
public static class ReloadAll
{
public static void Do()
{
foreach (Type classType …Run Code Online (Sandbox Code Playgroud)