代码之家  ›  专栏  ›  技术社区  ›  Form

扩展WCF服务及其自动生成的客户机服务引用

  •  2
  • Form  · 技术社区  · 14 年前

    为心跳和自动重新连接的基本服务添加一些功能

    DLL提供了具有以下目标的ServiceServer和ServiceClient类:

    ServiceServer :

    • 创建和管理 ServiceHost 实例。
    • 从DLL外部托管服务(作为泛型传递)。

    ServiceClient :

    • 创建并使客户机服务引用对客户机应用程序可用。服务引用(自动生成)也作为泛型从应用程序传递。
    • 将heartbeat方法添加到客户机的服务引用中,以及所有客户机/服务器应用程序通用的其他操作。

    到目前为止,我尝试使用分部类、泛型和静态扩展方法,但没有成功。问题是为了使我的DLL完全解耦,我使用泛型获取并创建服务引用和服务; .

    我基本上是在尝试用其他方法来扩展客户机服务引用,以便能够发送心跳等,而不需要另一个独立的连接和服务(这会使心跳无效),并且客户机应用程序不必知道任何有关发送心跳和自动重连的信息。同样,我想扩展服务器类作为参数接收的服务,以添加操作和服务器心跳代码的实现,并最终添加其他所有应用程序通用的方法。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Pablo Cibraro    14 年前

    您可能想探索这个解决方案,以便在wcf服务中自动实现hearbeats。

    http://weblogs.asp.net/cibrax/archive/2010/05/17/enabling-service-availability-in-wcf-services.aspx

    该解决方案还为客户端提供了一种扩展方法。

    巴勃罗。

        2
  •  0
  •   Ladislav Mrnka    14 年前

    不,这样不行。

    其他方法都不管用。您不能添加扩展方法、使用泛型或任何其他方法来“扩展”实现的服务。您可以继承现有的服务类并添加额外的接口。显然,这不是没有代码的解决方案,除非您创建一些非常高级的代码来在运行时生成动态数据类型(=在运行时发出MSIL)。