IronPython で CSharpCodeProvider を使って、C# のコードを動的にコンパイルして実行するサンプルを作ってみた。使い捨ての C# コードをいちいちコンパイルして、ファイルとして実行ファイルを置いておくのもディスクのゴミを増やすだけかもと。まあ、結果としてゴミの削減にならなくてもサンプルとしては面白いかなと。こういうテストコードを作るのには IronPython はとても便利だ。
import clr
from System import *
from System.IO import *
from System.Reflection import *
from System.CodeDom import *
from System.CodeDom.Compiler import *
from Microsoft.CSharp import *
if len(sys.argv) > 1:
source = sr.ReadToEnd()
cp = CompilerParameters()
cp.GenerateInMemory = True;
provider = CSharpCodeProvider()
cr = provider.CompileAssemblyFromSource(cp, source)
errors = cr.Errors
if errors.Count == 0:
types = asm.GetTypes()
for type in types:
for method in methods:

