public ConfigData GetConfigData() { ConfigData configData = new ConfigData(); configData.Name = Constants.ConfigName; foreach (KeyValuePair <string, Dictionary <string, object> > keyValuePair in _configData) { ConfigBlock configBlock = new ConfigBlock(); configBlock.Name = keyValuePair.Key; configData.ModuleConfigData.Add(configBlock); foreach (KeyValuePair <string, object> itemPair in keyValuePair.Value) { ConfigItem configItem = new ConfigItem(); configItem.Name = itemPair.Key; configItem.Value = itemPair.Value.ToString(); Type type = itemPair.Value.GetType(); if (itemPair.Key.Equals("PlatformEncoding")) { type = typeof(Encoding); } configItem.Type = $"{type.Namespace}.{type.Name}"; configBlock.ConfigItems.Add(configItem); } } return(configData); }
public static ConfigBlock <T> Setup <T>() where T : Data <T> { lock (ConcurrentLock) { var t = typeof(T); if (ConfigBlockCache.ContainsKey(t)) { return((ConfigBlock <T>)ConfigBlockCache[t]); } var e = new ConfigBlock <T> { Setup = typeof(T).GetCustomAttributes(false).OfType <ModerationPrimitiveAttribute>().FirstOrDefault(), LogManager = new ModerationLog <T>(), TaskManager = new ModerationTask <T>() }; ConfigBlockCache.Add(t, e); ConfigBlockCache[t] = e; return(e); } }