/
smwwiki
/
OneScript_fork
Обзор
Документация
Войти
/
smwwiki
/
OneScript_fork
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/ScriptEngine/Hosting/KeyValueConfig.cs
61 строка
2 KB
Andrey Ovsiankin
Масштабная переработка старта приложения, конфигурации, инициализации.
17 дек 2020, 20:32
17 дек 2020, 20:32
19d6c1f
Код
Авторство
О чём код?
/*---------------------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v.2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; using System.Collections.Generic; namespace ScriptEngine.Hosting { public class KeyValueConfig { private readonly Dictionary<string, string> _values = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase); public KeyValueConfig() { } public KeyValueConfig(IDictionary<string, string> source) { Merge(source); } public void Merge(IDictionary<string, string> source) { foreach (var keyValue in source) { this[keyValue.Key] = keyValue.Value; } } public string this[string key] { get { if (string.IsNullOrWhiteSpace(key)) throw BadKeyException(key); _values.TryGetValue(key, out var value); return value; } private set { if (String.IsNullOrWhiteSpace(key)) throw BadKeyException(key); _values[key] = value; } } private static ArgumentException BadKeyException(string key) { return new ArgumentException($"wrong config key format: {key}"); } } }