リフレクション出力による動的アセンブリのシナリオ

リフレクション出力では、動的アセンブリで定義されている動的モジュールの作成をサポートしています。 動的アセンブリで作成される動的モジュールは、一時動的モジュールと永続動的モジュールに分類されます。

型参照の制約事項

アセンブリは、他のアセンブリで定義されている型を参照できます。 一時動的アセンブリでは、他の一時動的アセンブリ、永続動的アセンブリ、または静的アセンブリで定義されている型を安全に参照できます。 ただし、共通言語ランタイムでは、一時動的モジュールで定義されている型を永続動的モジュールでは参照できません。 これは、共通言語ランタイムでは、永続動的モジュールがディスクに保存された後に読み込まれる場合に、一時動的モジュールで定義されている型への参照を解決できないためです。

リモート アプリケーション ドメインへの出力の制約事項

一部のシナリオでは、リモート アプリケーション ドメインで動的アセンブリを作成して実行する必要があります。 リフレクション出力では、動的アセンブリをリモート アプリケーション ドメインへ直接出力できません。 この点を解決するには、現在のアプリケーション ドメインで動的アセンブリを出力し、次に出力済み動的アセンブリをディスクへ保存して、この動的アセンブリをリモート アプリケーション ドメインへ読み込みます。

動的アセンブリのアクセス モード

動的アセンブリは、次に示すアクセス モードのいずれかを使用して作成できます。

  • 実行

    AssemblyBuilder によって表される動的アセンブリは一時動的アセンブリです。 出力済みコードを実行するときにだけ、この動的アセンブリを使用できます。

  • 保存

    AssemblyBuilder によって表される動的アセンブリは永続動的アセンブリですが、このアセンブリを実行する前に、保存されているポータブル実行可能 (PE) ファイルをディスクから読み込む必要があります。

  • RunAndSave

    AssemblyBuilder によって表される動的アセンブリは永続動的アセンブリですが、ディスクに保存する前でもディスクに保存した後でも実行できます。

動的アセンブリが定義されており、このアセンブリを今後変更できない場合には、アクセス モードを指定する必要があります。 ランタイムでは、アセンブリの内部形式を最適化するために、動的アセンブリのアクセス モードを使用します。

参照

その他の技術情報

動的メソッドおよびアセンブリの出力

リフレクション出力の使用