示例#1
0
        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)]);
            }
        }
示例#2
0
 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;