4

C# を .NET 3.5 アプリケーションの埋め込み内部スクリプト アプリケーションとして使用するためのベスト プラクティスは何ですか? いくつかの小さな IronRuby スクリプトを含むアプリがあります。いずれも、IronRuby の動的な性質を実際に利用していません。

どうやら、現在 IronRuby や IronPython を使用することは、私たちの企業標準に反しているようです。おっと。代わりに C# をスクリプト言語として使用する最善の方法は何ですか?

IronRuby で気に入った点の 1 つは、アプリの実行中に小さな変更を加えてから、スクリプトを再実行できることです。C#でこれを行う方法はありますか? または、常にアプリを再起動する必要がありますか?

4

4 に答える 4

6

現時点では、Monoに切り替えない限り、C#をスクリプト言語として使用することはできません。

Microsoftは、これ(または同様の機能)がC#バージョン5のロードマップに含まれていると述べています。これは遠い将来のことです。

ただし、現在、一時的な「コードファイル」をメモリ内の文字列として作成し、C#コンパイラを外部で実行して新しいメモリ内アセンブリを生成し、そのアセンブリを読み込んで実行することで、偽造することができます。
これは一度はうまく機能しますが、再起動せずに更新する場合は、メモリ内のアセンブリを新しいアプリドメインにロードし、毎回古いアセンブリをアンロードする必要があります(これは非常に注意が必要です)。

正直、気にしない。C#は、コンパイルされた性質と静的型付けのため、非常に優れたスクリプト言語にはなりません。

于 2010-02-28T21:21:48.680 に答える
1

いつでもCSスクリプトを試してみることができます。

http://www.csscript.net/

ただし、個人的には、スクリプトを作成するためにIronRubyまたはLuaのいずれかに固執することをお勧めします。

于 2010-08-03T15:14:03.833 に答える
1

スクリプト作成のために IronRuby を組み込むことはそれほど難しくありません。
Jimmy Schementi (IronRuby 開発者の 1 人) が、この完全で詳細な例をここに示しています。

http://blog.jimmy.schementi.com/2009/12/ironruby-rubyconf-2009-part-35.html

C# でこれを行うのは簡単ではないと思います。

申し訳ありませんが、これがあなたの質問に答えていないことは承知していますが、IronRuby を使用してスクリプトを処理しようとしている人にとって、何らかの役に立つことを願っています。

于 2010-01-25T19:38:39.723 に答える
1

アプリの実行中に C# コードを更新できる場合もありますが、簡単ではありません。このスレッドは、そのようなことをしようとする試みについて議論しています:

http://www.eggheadcafe.com/software/aspnet/30778032/assemblyload-and-updat.aspx

そのスレッドの下部には、この記事へのリンクがあり、役に立ちます。

http://dotnet.sys-con.com/node/113340

基本的なアプローチは、プラグイン アセンブリを別の AppDomain にロードし、プラグインを置き換えるときに AppDomain 全体をアンロードすることです。

于 2010-01-25T18:06:48.597 に答える