Example #1
0
        internal void CaptureLocals()
        {
            if (this._sessionState == null)
            {
                throw PSTraceSource.NewInvalidOperationException("Modules", "InvalidOperationOnBinaryModule", new object[0]);
            }
            ExecutionContext         executionContextFromTLS = LocalPipeline.GetExecutionContextFromTLS();
            MutableTuple             localsTuple             = executionContextFromTLS.EngineSessionState.CurrentScope.LocalsTuple;
            IEnumerable <PSVariable> values = executionContextFromTLS.EngineSessionState.CurrentScope.Variables.Values;

            if (localsTuple != null)
            {
                Dictionary <string, PSVariable> result = new Dictionary <string, PSVariable>();
                localsTuple.GetVariableTable(result, false);
                values = result.Values.Concat <PSVariable>(values);
            }
            foreach (PSVariable variable in values)
            {
                try
                {
                    if (variable.Options == ScopedItemOptions.None)
                    {
                        PSVariable variable2 = new PSVariable(variable.Name, variable.Value, variable.Options, variable.Attributes, variable.Description);
                        this._sessionState.Internal.NewVariable(variable2, false);
                    }
                }
                catch (SessionStateException)
                {
                }
            }
        }