2011-07-28 14 views
7

C#アプリケーション(ホスト)の内部(およびコンテキスト内)からF#スクリプトを簡単に実行できますか?C#アプリケーションのコンテキストでF#スクリプトを実行する方法

「文脈で」私は真である必要があり、次の意味で:

  • ホストアプリケーションの静的コンテンツへのF#スクリプトからスクリプト
  • アクセスの実行のために別個のプロセス(クラス、プロパティ、メソッド)

は基本的に私は、この仮想的なAPI呼び出し

FSharpScriptRunner.RunInContext(string script); 
に似APIを探していますよ

助けてください。

-Matthias

+0

F#はスクリプト言語ではなく、静的にコンパイルされた言語であることを覚えておいてください。あなたが言及したユースケースは、IronJS、IronPythonなどのDLRベース言語の方が適切です – Ankur

答えて

9

は、現在、そのようなAPIはありませんが、あなたはかなり簡単に手順のカップルに似た何かを行うことができます: -

1)電源パックで利用できるF#のCodeDOM、(FSharp.Compiler.CodeDom.dll)を使用しますスクリプトを動的にコンパイルします。パワーパックには、単一のファイルをコンパイルし、現在のアプリケーションへの参照を追加できるようにapisが含まれているため、スクリプトはホストアプリケーションのクラス、プロパティ、メソッドにアクセスできます。

2)コンパイル段階の終わりには、メモリに動的アセンブリが必要です。その後、リフレクションを使用してスクリプトからオブジェクトの動的インスタンスを作成し、それを実行することができます。

2

なぜあなただ​​けの、あなたのC#のアプリからというの参照アセンブリにF#コードをコンパイルしませんか?

+0

F#コードは、アプリケーション内から入力および編集する必要があります – mklein

関連する問題