DynamicMethod on Windows Phone 7

6月に「プログラミング .NET Framework」書籍の座談会に参加しまして、そこで何度か動的にILを Phone 7上で作成できませんか?という質問を受けました。Windows Phone 7のCompact Frameworkは、それまであまり調べていませんでしたので、DynamicMethodについて色々と調べてみました。

  • Windows Phone 7について
    結論から説明すると内部的にはSystem.Reflection.Emit.DynamicMethodは存在しています。但し、開発ツールではSystem.Reflection.Emit名前空間を使用できるようになっていません。従って、「asm.GetType("System.Reflection.Emit.DynamicMethod")」のようにリフレクションを使って、DynamicMethodの型を取得する必要があります。
  • コードネームMangoについて
    提供されているベータの開発ツールでは、Windows Phone 7.1となりますが、Mangoでは普通にDynamicMethodが使用できるようになっています。このことから考えると、Mango世代では動的IL生成を普通にサポートしますので、将来的にはDynamic Language Runtimeなどもサポートされるかも知れません。