|S# API documentation|
Script Context is a part of script that stores run-time information, such as: scopes, variables inside scopes, flags, functions, etc. With a help of Script Context host application may expose .NET objects for script. Script Context is a point of interoperability between runtime and host application.
Script runtime ensure that context is passed across all executable parts of script. For example, each user defined function implementing IInvokable interface will be supplied with an instance of context (as a first parameter) during its execution.
Run-time ensures that there is one-to-one relation between pre-compiled script instance and script context.
Script s1 = Script.Compile("return A;");
Script s2 = Script.Compile("return B;");
s1.Contex = s2.Context;
//After this statement s2.Context will be equal to null
Following scenario is possible:
Script s = Script.Compile("return A;");
ScriptContext sc = new ScriptContext();
s.Context = sc;
ScriptContext sc1 = new ScriptContext();
s.Context = sc1;
Note: during context switching all references created with Context.Ref method will be cleared. Context.Ref mainly used by runtime to cache references and improve performance. Avoid using this function.