0

UIがまだ作成されていないアプリの中間層機能をデモするためのシンプルでインタラクティブな方法が必要です。インタラクティブなコンソールが欲しい。

アプリケーション(WPFですが、問題ではありません)が起動したら、コンソールウィンドウも起動したいと思います。このウィンドウは、PowerShell(または、Ruby、Python、できればPowerShell)を実行し、ServiceLocatorにアクセスするようにスコープを設定する必要があります。

または、アプリを起動して、外部のPowerShellウィンドウからプロセスappdomainに接続し、ServiceLocatorへの参照を取得することもできます。これも可能ですか?

とにかく、私は以前にIronRubyエンジンを作成し、スコープに変数を設定しましたが、そのルートに進む場合は、基本的に独自のコンソール入力/表示メカニズムを作成する必要があります。

誰かがこれについて行くためのより良い方法を知っていますか?

4

5 に答える 5

2

ConsoleShellPowerShellの を使用できます。
何かのようなもの:

using System.Management.Automation;
using System.Management.Automation.Runspaces;
...
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
runspaceConfiguration.Cmdlets.Append(...);
ConsoleShell.Start(runspaceConfiguration, Console.Title, Console.Title, new string[] { });
...

これにより、プロセス内で PowerShell が開始され、変数にアクセスしたり、アプリとやり取りするコマンドレットを追加したりできます。ConsoleShell は、タブ補完やコマンド ライン インターフェイスのその他の機能を含む入出力メカニズムを提供します。

于 2013-06-13T12:04:54.033 に答える
1

どの Windows アプリケーションでも、Windows AllocConsoleAPI 関数を呼び出すことでコンソールを作成できます。残念ながら、.NET Console クラスはその機能を公開していません。数年前、私は一連の記事と、.NET コンソール インターフェイスを拡張し、AllocConsoleサポートを組み込むためのコードをいくつか書きました。残念ながら、DevSource はそのシリーズの最初の記事を失ったようです。

必要な関数は次の 2 つです。

[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool AllocConsole();

[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool FreeConsole();

完全な拡張コンソール サポート パッケージは、私の Web サイト ( http://mischel.com/pubs/consoledotnet.zip ) からダウンロードできます。

于 2010-07-09T20:22:34.560 に答える
0

CodeCastポッドキャストの6月20日のエピソードでは、IronPythonチームのJimmySchementiとのインタビューが取り上げられ、SilverlightのIronPythonInteractiveDLRコンソールについて話しました。デモサイトは次のとおりです:http://ironpython.net/ironpython/browser/examples/dlrconsole/

于 2010-07-09T23:02:52.800 に答える
0

この記事をご覧ください: PowerShellTunnel - 実行時に PowerShell からアプリをスクリプト化する

于 2010-07-09T20:24:22.383 に答える
0

私は Visual Studio の [イミディエイト] ウィンドウが好きになり、デバッグ中に割り当てを入力したり、関数を呼び出したりすることができます。明らかにあなたが探しているものではありませんが、あなたや他の読者がそれを認識していない場合、それは確かに非常に便利です.

于 2010-07-09T20:21:00.410 に答える