private void OnException(Task <ScriptState <object> > t, object state) { _consoleRedirect.Dispose(); var ex = t.Exception; VSTools.LogError(ex); VSTools.LogEndRunning(true); var executionEnd = (Action <object, Exception>)state; executionEnd(null, ex); }
private void OnSuccess(Task <ScriptState <object> > t, object state) { _consoleRedirect.Dispose(); var result = t.IsCompleted ? t.Result : null; var exception = t.IsFaulted ? t.Exception : null; VSTools.LogEndRunning(t.IsFaulted); var executionEnd = (Action <object, Exception>)state; executionEnd(result, exception); }
public void Run(string sCode, Action <object, Exception> executionEnd) { _consoleRedirect = new ConsoleRedirect(); VSTools.LogStartRunning(); try { var result = CSharpScript.RunAsync(sCode, defaultOptions, globals: new Globals()); result.ContinueWith(OnException, executionEnd, TaskContinuationOptions.OnlyOnFaulted); result.ContinueWith(OnSuccess, executionEnd, TaskContinuationOptions.OnlyOnRanToCompletion); } catch (Exception ex) { _consoleRedirect.Dispose(); VSTools.LogError(ex); VSTools.LogEndRunning(true); executionEnd(null, ex); } }
public int TraceError(Exception ex) { VSTools.LogDebugError(ex); return(0); }
public int Trace(string message) { VSTools.LogDebug(message); return(0); }
public override void Write(string value) { VSTools.LogDebug(value); }
public override void Write(char[] buffer, int index, int count) { VSTools.LogDebug(new string(buffer, index, count)); }
public override void Write(char value) { VSTools.LogDebug(new string (value, 1)); }