public Setting this[string key] { get { if (settings.ContainsKey(key)) return settings[key]; return null; } set { if (!settings.ContainsKey(key)) settings.Add(key, value); else { settings[key] = value; value.Name = key; } } }