/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
v2.0.3-alpha
src/ScriptEngine.HostedScript/SystemConfigAccessor.cs
70 строк
2 KB
EvilBeaver
Еще немного распутал взаимные зависимости при инициализации
26 сен 2021, 22:15
26 сен 2021, 22:15
1154f7c
Код
Авторство
О чём код?
/*---------------------------------------------------------- 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 OneScript.Contexts; using ScriptEngine.Hosting; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace ScriptEngine.HostedScript.Library { [GlobalContext(Category = "Работа с настройками системы")] public class SystemConfigAccessor : GlobalContextBase<SystemConfigAccessor> { private KeyValueConfig _config; internal ConfigurationProviders Provider { get; set; } public SystemConfigAccessor() { Refresh(); } internal KeyValueConfig GetConfig() { return _config; } /// <summary> /// Метод обновляет текущие настройки значениями из файла oscript.cfg /// </summary> [ContextMethod("ОбновитьНастройкиСистемы", "RefreshSystemConfig")] public void Refresh() { if (Provider != null) _config = Provider.CreateConfig(); } /// <summary> /// Метод возвращает значение из файла oscript.cfg по имени настойки /// </summary> /// <param name="optionKey">Имя настройки из файла oscript.cfg</param> /// <returns>Строка. Значение системной настройки.</returns> [ContextMethod("ПолучитьЗначениеСистемнойНастройки", "GetSystemOptionValue")] public IValue GetSystemOptionValue(string optionKey) { string value = null; if (_config != null) { value = _config[optionKey]; } if (value != null) return ValueFactory.Create(value); return ValueFactory.Create(); } public static IAttachableContext CreateInstance(ConfigurationProviders providers) { return new SystemConfigAccessor { Provider = providers }; } } }