Стартовая страница › Форумы › Разработка и интеграция › Компиляция скриптов
- В этой теме 6 ответов, 2 участника, последнее обновление 3 недели назад сделано
manjey73.
-
АвторСообщения
-
23.01.2025 в 21:16 #36479
manjey73
УчастникЧто-то я в ступоре. А где в коде найти как компилируются скрипты при запуске Сервера ?
23.01.2025 в 22:05 #36480manjey73
УчастникПытаюсь понять код Calculator.
Вопрос на засыпку: Например я в скриптах добавил некий скрипт, или даже class.
При запуске сервера все проходит компиляцию для проверки. Но если данный скрипт или класс не используется в скриптах каналов, то это будет выброшено из памяти после старта Сервера ?24.01.2025 в 12:59 #36489Mikhail
МодераторНа основе формул каналов и таблицы Скрипты формируется исходный код, который можно увидеть в файле Log\CalcEngine.cs
Затем он компилируется в памяти и используется при расчёте значений каналов и команд.
Если формула не используется, она всё равно компилируется и находится в памяти. Было бы полезно в будущем добавить поле «Включено» в таблицу Скрипты, чтобы отключать лишние формулы.24.01.2025 в 13:14 #36490manjey73
УчастникВопрос как достучаться до памяти, где скомпилированы формулы и создавать на их основе экземпляры?
не первый раз пытаюсь найти где оно лежит из модуля.
Я в скрипты добавляю свой класс и хочу его увидеть, чтобы увидеть его поля и т.д. А так же создать его экземпляр.
27.01.2025 в 15:12 #36504Mikhail
МодераторИз модулей нет доступа к экземпляру класса Calculator. Наверное нужно скомпилировать его из своего модуля.
27.01.2025 в 16:14 #36510manjey73
Участникну как бы к Calculator доступ есть, но только к тому, что уже откомпилирован и находится в библиотеке.
А вот к тому, что он компилирует, похоже доступа нет, так как оно компилируется в памяти, как вы говорите.Method get_Context Method get_Timestamp Method get_IsCurrent Method get_CnlNum Method get_Channel Method get_ArrIdx Method get_Cnl Method get_CnlVal Method get_CnlStat Method get_CnlData Method get_Cmd Method get_CmdVal Method get_CmdData Method get_CmdDataStr Method InitScripts Method FinalizeScripts Method BeginCalculation Method EndCalculation Method BeginCalcCnlData Method EndCalcCnlData Method BeginCalcCmdData Method EndCalcCmdData Method N Method Val Method Val Method SetVal Method Stat Method Stat Method SetStat Method Data Method Data Method SetData Method SetData Method NewData Method PrevVal Method PrevVal Method PrevStat Method PrevStat Method PrevData Method PrevData Method Time Method Time Method PrevTime Method PrevTime Method Deriv Method GetType Method ToString Method Equals Method GetHashCode
Не помню, это он или нет. В общем можно добраться до CalcEngine, Manager и Calculator — но к чистым, которые загружены в AppDomain
А вот к Assembly, который в памяти после компиляции Сервером хз как добираться.
Тут то и полагаю, что никак, а очень бы хотелось. Учитывая, что Модули стартуют после того, как Сервер скомпилирует исходники.27.01.2025 в 16:19 #36511manjey73
УчастникНу да, это методы Calculator — InitScripts, FinalizeScripts
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.