使用 JointCode.Shuttle 动态注册 / 注销服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 JointCode.Shuttle 动态注册 / 注销服务相关的知识,希望对你有一定的参考价值。

JointCode.Shuttle 是一个用于进程内 AppDomain 间通信的服务架构(不支持跨进程)。

本文将介绍如何使用 JointCode.Shuttle 在运行时动态注册 / 注销服务。

假设我们有一个服务契约 A,使用 JointCode.Shuttle,我们可以在运行时:

  1. 在一个 AppDomain(B)中注册一个服务实现(它实现了服务契约 A),
  2. 在另一个 AppDomain( C)中消费此服务(通过服务契约 A)。
  3. 然后,我们可以在 AppDomain(B)中注销上述服务实现,
  4. 并启动另外一个 AppDomain(D),然后在 AppDomain(D)中另外注册一个实现了相同服务契约 A 的服务,
  5. 在 AppDomain ( B)中再次消费此服务(通过相同的服务契约 A

我为此写了一个简单的示例,以下是运行该示例的程序输出:

技术分享

可以看到,通过在两个不同的 AppDomain 中 注册/注销 实现了相同服务契约的不同服务实现,我们可以在运行时达到动态切换服务实现的目的。

如果您对示例源码感兴趣,请点击 此处 下载(测试名称:ShuttleDomain服务更新)。

 

以上是关于使用 JointCode.Shuttle 动态注册 / 注销服务的主要内容,如果未能解决你的问题,请参考以下文章

使用 JointCode.Shuttle 访问任意 AppDomain 的服务

使用 JointCode.Shuttle 管理远程服务对象的生命期

JointCode.Shuttle,一个简单高效的跨 AppDomain 通信的服务框架

c++的jni动态注册简单示例(上)

Android广播的使用(动态注册和静态注册)

Android 动态注册JNI函数