refactor(scripting): extract script-callable types into Roslyn-free Core.Scripting.Abstractions (A0)

This commit is contained in:
Joseph Doherty
2026-06-07 15:10:00 -04:00
parent df772dd09a
commit 56cac39216
9 changed files with 26 additions and 4 deletions
@@ -0,0 +1,20 @@
namespace ZB.MOM.WW.OtOpcUa.Core.Scripting;
/// <summary>
/// Wraps a <see cref="ScriptContext"/> as a named field so user scripts see
/// <c>ctx.GetTag(...)</c> instead of the bare <c>GetTag(...)</c> that Roslyn's
/// globalsType convention would produce. Keeps the script ergonomics operators
/// author against consistent with the dependency extractor (which looks for the
/// <c>ctx.</c> prefix) and with the Admin UI hand-written type stub.
/// </summary>
/// <remarks>
/// Generic on <typeparamref name="TContext"/> so alarm predicates can use a richer
/// context (e.g. with an <c>Alarm</c> property carrying the owning condition's
/// metadata) without affecting virtual-tag contexts.
/// </remarks>
public class ScriptGlobals<TContext>
where TContext : ScriptContext
{
/// <summary>Gets or sets the script context available to scripts.</summary>
public TContext ctx { get; set; } = default!;
}