反映發出動態組件案例

反映發出支援在動態組件中定義之動態模組的建立。 動態組件中建立的動態模組可以是暫時性或永久性。

型別參考上的反映

組件會參考另一個組件中定義的型別。 暫時性動態組件可以安全地參考另一個暫時性動態組件、永久性動態組件或靜態組件中定義的型別。 然而,Common Language Runtime 不允許永久性動態模組參考暫時性動態模組中定義的型別。 這是因為當保存的動態模組在儲存至磁碟之後被載入時,執行階段無法解析參考至暫時性動態模組中定義的型別。

對發出至遠端應用程式定義域的限制

某些案例需要在遠端應用程式定義域中建立和執行動態組件。 反映發出不允許動態組件直接向遠端應用程式定義域發出。 解決的方案是,在目前應用程式定義域中發出動態組件、將發出的動態組件儲存到磁碟,並接著將動態組件載入遠端應用程式定義域。

動態組件存取模式

動態組件可以使用下列存取模式其中之一來建立:

  • 回合

    AssemblyBuilder 所表示的動態組件是暫時性的。 動態組件只可以用來執行發出的程式碼。

  • Save

    AssemblyBuilder 物件所表示的動態組件是永久性的,但直到儲存的可移植執行檔 (PE) 已從磁碟載入之前,無法被執行。

  • RunAndSave

    AssemblyBuilder 物件所表示的動態組件是永久性的,但也可以在組件儲存到磁碟之前和 (或) 之後被執行。

定義動態組件時必須指定存取模式,並且事後不能變更。 執行階段使用動態組件的存取模式來最佳化組件的內部表示。

請參閱

其他資源

發出動態方法和組件

使用反映發出