2012-04-30 3 views
4

.NETフレームワークには、C#コードを含む外部スクリプトファイルを実行(コンパイル、解釈など)できるクラスがありますか?プログラム内で外部C#ファイルを実行中

例えば

、私はファイルHello.csこの含まれている場合:

class Hello 
//This program displays Hello World 
{ 
    static public void Main() 
    { 
     System.Console.WriteLine("Hello World"); 
    } 
} 

がどのように私はWinフォーム、アプリの中から、上記のコードをロードして実行することができますか?

私はロード/実行ロジックに興味があります。プログラムはコンソールアプリケーションから別のwinformアプリケーションまで、何でもかまいません。

Reflectionはこれを許可していますか?

+0

RoslynのScriptEngineを調べてください。http://msdn.microsoft.com/en-us/roslyn –

+0

ブライアンに感謝します。 – user1327073

答えて

2

.NETフレームワークを使用すると、 を実行できるようにする任意のクラス(コンパイル、解釈または何でも)C# コードを含む外部スクリプトファイルがありますか?

はい、CodeDomProviderクラスを使用できます。

上記のコードをwinform、app内からロードして を実行するにはどうすればよいですか?

まあ、後に上記のクラスを使用してC#コードをコンパイルするには、ProcessStartInfoクラスを使用して、ProcessクラスからStartメソッドの引数として渡しとStandardOutputストリームを読み、文字列やショーなどでそれを保存することができますあなたは、Console.Write()MessageBox.Show()など

2

私はRoslyn APIをチェックします。有効なC#o VB.NETコードを提供している限り、これまでどおり何でもできます。