0

ある種のyieldをサポートする.Net用の埋め込み可能なスクリプト言語はありますか(プログラムは停止し、制御をホストに戻します。..次の実行では、中断したところから続行します)?

さらに、VMの状態を保存し、後で続行できるようにする必要があります。

編集1:私はluaを見てきました、そしてc#からグローバルにアクセスすることはできますが、それを行うための方法全体はハッキーだと感じます。

Edit2:私はironrubyも調べていますが、グローバル変数をクエリして設定できるようですが、一度にすべてを取得することはできません。

4

6 に答える 6

1

すべての状態を保持する明確に定義されたクラスのツリーを使用して、VB または C# で記述します。このツリーはルート クラスで構成され、シリアル化可能なリストなどのすべてのデータが含まれます。

適切な時点で、すべてを XML シリアル化してストリーム ファイルに出力します。

再起動時に、保存したファイルから逆シリアル化し、中断したところから開始します。

于 2010-11-22T16:04:15.363 に答える
1

ブーはそうします。
Making your own embedded DSL in boo に関する本があります。読むことを強くお勧めします (Oren the Great 著): http://www.manning.com/rahien/
サンプルの章: http://www.manning.com/rahien/Sample1.pdf
これを埋め込む方法は次のとおりです:
http: //boo.codehaus.org/Boo+as+an+embedded+scripting+language

于 2010-11-24T04:59:22.387 に答える
1

bungee# は C# スクリプトです。実際、c# で開発されたプログラミング言語で、構文は C# と同じです。Bungee# は間もなくオープン ソース プロジェクトになりますが、まだ公開されていません。コードプレックスでソースを見つけることができます。それはあなたが望むものだと思います。C#のほぼすべてのキーワードをサポートし、定義されたメソッドがあり、新しいメソッドを作成できるためです。気に入っていただけると幸いです。バンジー リンクはこれですが、まだ公開されていません

于 2011-03-29T09:56:12.927 に答える
0

「スクリプト言語」としてC#を使用してみましたか?スクリプトとしてのc#をアプリケーションに簡単に統合できるライブラリについては、http://www.csscript.netを参照してください。.NETで構築されたコンパイラを使用して、ファイルまたは文字列から新しいアセンブリを作成およびロードします。完全なC#があるので、アプリケーションでできることは何でもできます。歩留まりを含む。「VM」を一時停止するには、スクリプトをスレッドで実行し、一時停止して再開します。

于 2010-11-20T22:59:27.270 に答える
0

lua をもう一度確認することをお勧めします。何かがハッキングされていると感じた場合は、それが正しく行われていることを確認してから、後でハックしにくくなるクラスにラップしてください。それが問題である場合は、使用可能な既存のマネージド lua ソリューションが既に存在します。誰もまだ作成しようとしていないために、ハックではない解決策を見つけることができない場合があります。

于 2010-11-24T18:39:24.820 に答える
0

コンテキストによっては、PowerShellが適切な候補になる場合があります。.Net アプリケーションでPowerShellをホストする方法に関するドキュメントは、ここにあります。PowerShell は、コマンド ベースごとにコマンドを実行すること、 および実行するPipeLineにコードのチャンクを追加することをサポートしています。

VM の状態を保存するのは少し難しいように思えますが、これがPowerShellで可能であるという証拠は見つかりませんでした。ただし、Export-Clixmlというコマンドレットを使用して、関心のあるオブジェクトの状態を保存できます。

PowerShellモジュールはキッチン シンク以外のすべてに対してポップアップするように見えるため、スクリプトで環境とやり取りする必要がある場合は、 PowerShell が適しています。これは、 CodePlexで検索すると出てくるものです。

于 2010-11-24T23:37:18.657 に答える