/// <summary> /// This sample uses a PowerShell object to run /// a script that calls exit. The host application looks at /// this and prints out the result. /// </summary> /// <param name="args">Parameter not used.</param> private static void Main(string[] args) { // Create an instance of this host application class so that // the Windows PowerShell engine will have access to the // ShouldExit and ExitCode parameters. Host01 me = new Host01(); // Create the host instance to use. MyHost myHost = new MyHost(me); // Create a runspace that uses the host object and run the // script using a PowerShell object. using (Runspace myRunSpace = RunspaceFactory.CreateRunspace(myHost)) { // Open the runspace. myRunSpace.Open(); // Create a PowerShell object to run the script. using (PowerShell powershell = PowerShell.Create()) { powershell.Runspace = myRunSpace; // Create the pipeline and run the script // "exit (2+2)". string script = "exit (2+2)"; powershell.AddScript(script); powershell.Invoke(script); } // Check the flags and see if they were set propertly. Console.WriteLine( "ShouldExit={0} (should be True); ExitCode={1} (should be 4)", me.ShouldExit, me.ExitCode); // close the runspace to free resources. myRunSpace.Close(); } Console.WriteLine("Hit any key to exit..."); Console.ReadKey(); }
/// <summary> /// Initializes a new instance of the MyHost class. Keep /// a reference to the host application object so that it /// can be informed of when to exit. /// </summary> /// <param name="program"> /// A reference to the host application object. /// </param> public MyHost(Host01 program) { this.program = program; }