public static SettingsBase GetSettings <T>() where T : SettingsBase { SettingsBase defaultSB = (SettingsBase)Activator.CreateInstance(typeof(T)); if (!defaults.ContainsKey(typeof(T))) { defaults.Add(typeof(T), defaultSB); } if (AssemblyLoaded) { SettingsBase sb = (SettingsBase)GetSettingsMethod?.Invoke(null, new object[] { defaultSB.ID }); if (sb == null) { LoadSettingsFromTypeMethod?.Invoke(null, new object[] { typeof(T) }); sb = (SettingsBase)GetSettingsMethod?.Invoke(null, new object[] { defaultSB.ID }); if (sb == null) { return(defaults[typeof(T)]); } } return(sb); } else { return(defaults[typeof(T)]); } }
public BaseSettings?GetSettings(string id) => GetSettingsMethod?.Invoke(Object, new object[] { id }) is { } settings
public override BaseSettings?GetSettings(string id) => GetSettingsMethod?.Invoke(Object, new object[] { id }) as BaseSettings;