zoukankan      html  css  js  c++  java
  • 使用 JointCode.Shuttle 动态注册 / 注销服务

    JointCode.Shuttle 是一个用于进程内 AppDomain 间通信的服务架构(不支持跨进程),它旨在取代运行时库提供的 MarshalByrefObject 的功能。

    本文将介绍如何使用 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)

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

    ShuttleDomain服务更新

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

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

  • 相关阅读:
    spring注解
    SVN cleanup 反复失败解决办法
    如何改变cmd窗口大小
    JQuery UI
    VS2013装扩展RazorGenerator
    visual studio 2013使用github获取代码
    还原NuGet程序包
    C# linq对分组操作执行子查询
    C# linq创建嵌套组
    linq 在查询表达式中处理异常
  • 原文地址:https://www.cnblogs.com/johnny-liu/p/7200062.html
Copyright © 2011-2022 走看看