/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/OneScript.Core/Contexts/IRuntimeEnvironment.cs
83 строки
4 KB
EvilBeaver
fixes #1540 Предупреждение о неявных импортах
01 дек 2025, 12:27
01 дек 2025, 12:27
9ef7b18
Код
Авторство
О чём код?
/*---------------------------------------------------------- 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.Collections.Generic; using OneScript.Compilation; using OneScript.Compilation.Binding; using ScriptEngine.Machine; namespace OneScript.Contexts { /// <summary> /// Программное окружение BSL-процесса. То, что "видит" скриптовый код. /// Используется для инжекта внешних символов в процесс. /// </summary> public interface IRuntimeEnvironment { /// <summary> /// Инжект объекта в глобальное пространство имен. Методы и свойства объекта станут глобальными методами и свойствами. /// </summary> /// <param name="context"></param> void InjectObject(IAttachableContext context); /// <summary> /// Инжект глобального свойства /// </summary> /// <param name="value">Значение свойства</param> /// <param name="identifier">Идентификатор</param> /// <param name="alias">Псевдоним</param> /// <param name="readOnly">Флаг доступности свойства только для чтения</param> void InjectGlobalProperty(IValue value, string identifier, string alias, bool readOnly); /// <summary> /// Инжект глобального свойства /// </summary> /// <param name="value">Значение свойства</param> /// <param name="identifier">Идентификатор</param> /// <param name="readOnly">Флаг доступности свойства только для чтения</param> void InjectGlobalProperty(IValue value, string identifier, bool readOnly); /// <summary> /// Инжект глобального свойства /// </summary> /// <param name="value">Значение свойства</param> /// <param name="identifier">Идентификатор</param> /// <param name="ownerPackage">Пакет, предоставивший это свойство</param> void InjectGlobalProperty(IValue value, string identifier, PackageInfo ownerPackage); /// <summary> /// Инжект глобального свойства с помощью описания свойства. /// </summary> /// <param name="value">Значение свойства</param> /// <param name="definition">Определение свойства</param> void InjectGlobalProperty(IValue value, BslPropertyInfo definition); /// <summary> /// Установить новое значение глобального свойства /// </summary> /// <param name="propertyName">Имя свойства</param> /// <param name="value">Значение свойства</param> void SetGlobalProperty(string propertyName, IValue value); /// <summary> /// Прочитать значение глобального свойства /// </summary> /// <param name="propertyName">Имя свойства</param> /// <returns></returns> IValue GetGlobalProperty(string propertyName); /// <summary> /// Получить таблицу символов для видимого контекста /// </summary> SymbolTable GetSymbolTable(); /// <summary> /// Список подключенных внешних контекстов (слоев), доступных всегда в рамках данного окружения /// </summary> IReadOnlyList<IAttachableContext> AttachedContexts { get; } } }