2011-08-16 6 views

答えて

0

C#は解釈されないので、javascriptや他のインタープリター言語とは異なり、ネイティブで行うことはできません。ここでは、最も複雑なものから順に、4つの基本的なルートに進むことができます。

1)ユーザーが適用できる固定された操作のセットを提供します。ユーザーの入力を解析するか、チェックボックスなどのUI要素を指定して、特定の操作を適用する必要があることを示します。

2)プラグインベースまたは動的に定義された操作のセットを提供します。 #1と同様に、完全な信頼のような特別な権限を必要としないという利点があります。 http://mef.codeplex.com/

3)paxScript:http://eco148-88394.innterhost.net/paxscriptnet/のような動的なC#コンパイルフレームワークを使用してください。これは、理論的には、必要に応じて小さなC#スニペットをコンパイルできるようにします。

4)IL Emit文を使用してコードを解析し、その場で操作を生成します。これははるかに複雑なソリューションであり、完全な信頼を必要とする可能性が高く、非常にエラーが発生しやすいです。非常にわかりにくい要件や洗練されたユーザーがいない限り、私はそれをお勧めしません。

+0

。最高の解決策は、あまりにも難しくない、自分の簡単なスクリプト言語を書くことです。または..埋め込まれたVBScriptを検討します –

0

CSharpCodeProviderクラスは、あなたが望むことをします。ある(非常に古くなっていますが、いくつかの調整を行っていますが)その使用例については、CSIをご覧ください。

0

Monoランタイムを対象としたい場合は、Mono.CSharp.Evaluator型には、実行時にC#の式とステートメントを評価するためのAPIが用意されています。

+0

それは文字列操作を管理しますか? –

+0

@Kirk - はい、かなりフル機能ですが、このAPIに基づいたC#のインタラクティブシェルをチェックすることで、解析、コンパイル、実行できるすべての表現を知ることができます:http ://www.mono-project.com/CsharpRepl(実際に.NET開発を行っていても、私はMonoをインタラクティブなシェルでインストールしているので、探検的なプログラミングができます)。 –

1

結局のところ、私はIron Pythonに注目しています。