使用 JointCode.Shuttle 動態註冊 / 註銷服務

JointCode.Shuttle 是一個用於進程內 AppDomain 間通訊的服務架構(不支持跨進程),它旨在取代運行時庫提供的 MarshalByrefObject 的功能。git

本文將介紹如何使用 JointCode.Shuttle 在運行時動態註冊 / 註銷服務。github

假設咱們有一個服務契約 A,使用 JointCode.Shuttle,咱們能夠在運行時:架構

  1. 在一個 AppDomain(B)中註冊一個服務實現(它實現了服務契約 A),
  2. 在另外一個 AppDomain(C)中消費此服務(經過服務契約 A)。
  3. 而後,咱們能夠在 AppDomain(B)中註銷上述服務實現,
  4. 並啓動另一個 AppDomain(D),而後在 AppDomain(D)中另外註冊一個實現了相同服務契約 A 的服務,
  5. 在 AppDomain (B)中再次消費此服務(經過相同的服務契約 A)

我爲此寫了一個簡單的示例,如下是運行該示例的程序輸出:測試

ShuttleDomain服務更新

能夠看到,經過在兩個不一樣的 AppDomain 中 註冊/註銷 實現了相同服務契約的不一樣服務實現,咱們能夠在運行時達到動態切換服務實現的目的。進程

若是您對示例源碼感興趣,請移步前往 此處 下載(測試名稱:ShuttleDomain服務更新)。get

相關文章
相關標籤/搜索