単純派生したクラスを動的に生成する(2)

前エントリのメソッドでは、第4パラメタにtrueをセットすることにより、型の生成を行う度に動的に生成したアセンブリが物理ファイルとしてカレントディレクトリに保存される。
単に一時的に使用する型であれば、アセンブリの物理的な保存は不要なのだが、AppDomain境界を越えて動的に生成した型にアクセスする場合、例えば.NET Remoting等では他のAppDomainが生成した型にアクセスすることは出来ないので、生成した型が属するアセンブリを保存する必要が出てくる。

Type delivedClass = CreateDynamicDelivedClass("DelivedHoge", typeof(HogeClass), new Type[] { typeof(string), typeof(int) }, true);

あと、この方法で生成した型は以前のエントリで書いた通り、属しているAppDomainがアンロードされるまでは型をアンロードすることは出来ない。生成した型の管理には十分を気をつけなくてはならないだろう。