private protected ScriptBlockEnumerator( ScriptBlock scriptBlock, Closure closure, IEnumerator source) { _pipe = Unstable.CreateNewPipe(_output = SpanEnabledCollection <PSObject> .Create()); _scriptBlock = scriptBlock; _closure = closure; _source = source; }
private void Invoke(object dollarUnder = null) { var current = _source.Current; var thisClosure = _closure.With( dollarUnder: GetDollarUnder(current), args: GetArgs(current)); Unstable.InvokeWithPipe( _scriptBlock, useLocalScope: false, AutomationNull.Value, AutomationNull.Value, AutomationNull.Value, _pipe, invocationInfo: null, propagateAllExceptionsToTop: true, variablesToDefine: null, functionsToDefine: null, new object[] { thisClosure }); }