攔截跨內容呼叫
在指定內容中啟動物件時,在內容中後續呼叫或從中處理的方式會與跨內容界限的呼叫不同。 跨內容界限的呼叫會以輕量型 Proxy 來處理。 這些 Proxy 會處理調整運行時間環境所需的任何流量分配,從可容納呼叫端的中繼環境調整為容納被呼叫者。 此程式稱為 攔截。
跨內容呼叫攔截是必要的,因為不同內容中的物件有不同的運行時間需求,這正是內容的原因。 COM+ 會攔截您傳遞為方法參數的任何對象參考,並自動將它們轉換成 Proxy,使其可在新的內容中使用。
如果您以其他方式跨內容界限共享對象參考,例如,在全域變數中,您應該一律使用 CoMarshalInterface 和 CoUnmarshalInterface。 這些函式可以將對象參考轉譯為在不同內容中可使用的 Proxy。 絕不會跨內容界限共用原始對象參考。
在公開無法封送處理之介面的物件時,跨內容呼叫的行為可能會產生不必要的後果。 在此情況下,您可能想要堅持只能在其呼叫端的內容中啟動無法封送處理的物件,而且永遠不會在其本身的內容中啟動。 您可以選取 [元件內容] 頁面的 [啟用] 索引標籤上的 [必須在呼叫端的內容] 選項中啟動,以執行這項操作。 (請參閱 在呼叫端的內容 中強制執行啟用,以取得逐步指示。
相關主題