1

ユーザーがスクリプト言語として使用できるコマンドラインアプリケーションをC#で作成したいと思います。これは、アプリケーションの最初の実行時に、オブジェクトのインスタンスが作成され、セッションの残りの期間を通じて存続することを意味します。コマンドラインからのアプリケーションの後続の呼び出しは、以前に設定されたパラメーターを使用します。

たとえば、woo.exeというアプリケーションがあり、ballというオブジェクトが作成されたとします。Ballには、文字列を入力として受け入れるchangeColorというメソッドがあります。changeColorのコマンドライン呼び出しは次のようになります。

ウーチェンジカラーレッド

ここで、ボールにボールオブジェクトの色を返すメソッドgetColor()がある場合、コマンドを呼び出します

woo getColorあなたの色は赤です(Console.WriteLine( "あなたの色は{0}"、color)からの出力)

このようにして、ユーザーはバッチファイルを作成して、プログラムを複数回呼び出すことにより、単一のオブジェクトに対してメソッドを実行できます。

あなたの助けは大歓迎です。

4

2 に答える 2

2

考えられる方法の1つは次のとおりです。

  • woo.exeを呼び出し、オブジェクトを作成します
  • これでwoo.exeが終了しますよね?オブジェクトを任意の便利な形式でディスクにシリアル化します(表現力があり、C#で解析しやすいのでXMLを選択します)
  • woo.exeは、新しいパラメータで再度呼び出されます。オブジェクトをロードし、変更を加え、再度シリアル化します。

別の可能な方法:

  • woo.exeは最初にロードされ、オブジェクトを作成して待機します。
  • 別のインスタンスがロードされ、プロセス間通信(パイプまたはローカルネットワーク)を介して最初のインスタンスを見つけ、コマンド(メソッドを呼び出す)をそのインスタンスに送信します。
  • 最初のインスタンスはサーバーのように機能し、オブジェクトを保持して変更を実行します。
于 2012-06-04T05:13:26.740 に答える
1

@alxx の提案を詳しく説明するには、そのオブジェクトがプロパティの変更間で何をするかに依存します。それらの値を覚えているだけの場合は、最初の提案を使用してください。オブジェクトが何かを行う場合 (色を赤に設定すると、何かが赤くなる)、おそらくその何かがどこかのプロセス内に存在する必要があり、それはあなた自身のプロセスであり、2 番目の提案を使用する必要があります。

于 2012-06-04T05:24:28.070 に答える