RunspaceInvoke#Invokeの戻り値
RunspaceInvokeクラスのInvokeメソッドによるスクリプト式の実行結果の型Collection
例えば単純な例として、以下のようにC#からPowerShellスクリプトを実行した場合、
RunspaceInvoke invoker = new RunspaceInvoke(); string script = "get-process"; object result = invoker.Invoke(script); foreach (PSObject obj in (Collection)result) { Console.WriteLine(obj.BaseObject); }
コンソールには、現在動いている全てのプロセスを列挙するSystem.Diagnostics.Processクラスのインスタンスの文字列表現が、タスクマネジャの「プロセス」で見るのと同じ数だけ出力されるはずである。ならば、わざわざ戻り値がPSObjectにラップされているのは何故か、というのが今後調べていく所だが、現在のところ恐らくこれはPowerShellのパイプラインに関係しているのではないかと思っている。
逆に言うと、戻り値が複数あった場合にDIコンテナの評価式としてはどう扱うかを考えなくてはならないということになる。