增益集管線案例
增益集管線物件模型為主應用程式和增益集提供靈活度,能以下列方式互通:
回溯相容性。 較新的主應用程式或增益集版本能夠使用其舊版對應項目運作。
隔離性。 您可以將一個或多個增益集移到主應用程式處理序或隔離處理序中的應用程式定義域。
共用。 您可以在多個通訊管線中使用增益集。
下圖顯示簡單的通訊管線及其區段。
標準通訊管線
回溯相容性
以下兩個案例將示範回溯相容性。
新的主應用程式,舊的增益集
下圖將顯示新的主應用程式如何使用舊的增益集。
使用新主應用程式和舊增益集的通訊管線
在這個回溯相容性案例中,新的主應用程式 (Host v2) 可以使用舊的增益集 (Add-in v1),因為其增益集端配接器 (Add-in-side adapter v1->v2) 會將型別轉換成舊增益集能夠理解的格式。
新的增益集 (Add-in v2) 有自己的檢視和配接器區段,可用來與新的主應用程式進行通訊。
舊的主應用程式,新的增益集
下圖將顯示舊的主應用程式如何使用新的增益集。
使用舊主應用程式和新增益集的通訊管線
在這個回溯相容性案例中,新的增益集 (Add-in v2) 可以使用舊的主應用程式 (Host v1),因為其增益集端配接器 (Add-in-side adapter v2->v1) 會將型別轉換成舊的主應用程式能夠理解的格式。
改變隔離等級
您可以使用 Activate 方法的適當多載,在新的處理序或應用程式定義域中啟動增益集。 需要這種隔離的原因如下:
處理主應用程式變更,而舊的增益集無法容納新相依性的情況。 例如,這種情況會在主應用程式升級至新的 .NET Framework 版本時發生。
讓增益集在自己的處理序中執行以獲得可靠性。
建立增益集的沙箱。 例如,根據 AddInSecurityLevel 列舉型別所指定,主應用程式和增益集的信任層級不同。
下圖顯示使用兩個增益集的通訊管線,其中一個位於隔離處理序中。 在圖中,OOP 表示隔離處理序。
使用隔離增益集的通訊管線
在這個案例中,管線開發人員有兩個不同版本的合約和配接器:其中一個會最佳化並且用於跨應用程式定義域通訊,另一個則會最佳化並且用於跨處理序通訊。 不過您不需要特別注意增益集和主應用程式的差異,因為無論合約和隔離等級為何,兩者都會使用相同的檢視。
共用增益集
只要增益集與主應用程式相容,您可以使用增益集搭配多個主應用程式。 例如,您可以使用共用增益集實作工具列,為主 Web 應用程式提供網際網路搜尋。 另一個範例是:為電子郵件伺服器或電子郵件用戶端提供垃圾郵件篩選與病毒防護的共用增益集。
若要讓增益集能夠搭配新的主應用程式運作,您必須建立新的增益集端配接器,將增益集檢視轉換成主應用程式的合約。
下圖顯示兩個主應用程式 (Host A 和 Host B) 如何共用增益集 (Add-in A)。
使用共用增益集的通訊管線