public PSWrapper(InputOutputBuffers buffers, Action exitCallback)
{
_buffers = buffers;
_exitCallback = exitCallback;
_psRemoteHost = new PSRemoteHost(buffers, this);
var sessionState = InitialSessionState.CreateDefault();
sessionState.Variables.Add(new SessionStateVariableEntry("cls_handler", new ClearHostHandler(buffers),"cls_handler"));
_runspace = RunspaceFactory.CreateRunspace(_psRemoteHost, sessionState);
_runspace.Open();
using (var powerShell = PowerShell.Create())
{
powerShell.Runspace = _runspace;
powerShell.AddScript("function Clear-Host() { $cls_handler.Clear() }");
powerShell.Invoke();
}
}