public void SetUpRunspace() { TestHost host = new TestHost(new TestHostUserInterface()); // use public static property, so we can access e.g. the ExecutionContext after execution _runspace = RunspaceFactory.CreateRunspace(host) as LocalRunspace; _runspace.Open(); var alias = new AliasInfo("gciAlias", "Get-ChildItem", _runspace.CommandManager); _runspace.ExecutionContext.SessionState.Alias.New(alias, "global"); _runspace.ExecutionContext.SessionState.Function.Set("MyFunction", new ScriptBlock(null)); _runspace.ExecutionContext.SessionState.PSVariable.Set("myvar", 1); var newScope = _runspace.ExecutionContext.Clone(ScopeUsages.NewScope); newScope.SessionState.PSVariable.Set("myothervar", 2); newScope.SessionState.Function.Set("MyFun2", new ScriptBlock(null)); _runspace.ExecutionContext = newScope; _tabExp = new TabExpansionProvider(_runspace); }
public void CloseRunspace() { _runspace.Close(); _tabExp = null; }