/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
v2.0.2
src/ScriptEngine.HostedScript/SystemConfigAccessor.cs
54 строки
2 KB
EvilBeaver
Рефакторинг механизма конфигурирования
13 фев 2026, 16:28
13 фев 2026, 16:28
8207c80
Код
Авторство
О чём код?
/*---------------------------------------------------------- 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 readonly EngineConfiguration _activeConfig; public SystemConfigAccessor(EngineConfiguration activeConfig) { _activeConfig = activeConfig; } /// <summary> /// Метод обновляет текущие настройки значениями из файла oscript.cfg /// </summary> [ContextMethod("ОбновитьНастройкиСистемы", "RefreshSystemConfig")] public void Refresh() { _activeConfig.Reload(); } /// <summary> /// Метод возвращает значение из файла oscript.cfg по имени настойки /// </summary> /// <param name="optionKey">Имя настройки из файла oscript.cfg</param> /// <returns>Строка. Значение системной настройки.</returns> [ContextMethod("ПолучитьЗначениеСистемнойНастройки", "GetSystemOptionValue")] public IValue GetSystemOptionValue(string optionKey) { var cfg = _activeConfig.GetConfig(); var value = cfg[optionKey]; return value != null ? ValueFactory.Create(value) : ValueFactory.Create(); } public static IAttachableContext CreateInstance(EngineConfiguration configHolder) { return new SystemConfigAccessor(configHolder); } } }