使用 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

相关文章
相关标签/搜索