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

管理经常调用的WCF连接

  •  0
  • SqlRyan  · 技术社区  · 14 年前

    Public Shared Sub MyLocalMethod1()
        Dim tcpBinding As New NetTcpBinding
        tcpBinding.SendTimeout = New TimeSpan(0, 0, 5)
    
        Dim tcpFactory As ChannelFactory(Of MyWCFClass.MyWCFInterface) = New  _
                            ChannelFactory(Of MyWCFClass.MyWCFInterface)(tcpBinding, "net.tcp://localhost:4079")
    
        Dim ServiceWCFConnection As MyWCFClass.MyWCFInterface = tcpFactory.CreateChannel
    
        ServiceWCFConnection.MyWCFMethod1()
    
        tcpFactory.Close()
    
    End Sub
    

    我可能应该在某个助手类中执行此操作,该类创建连接,让我的服务使用它,然后关闭连接,因此我没有此连接代码的多个副本。但是,我应该保持此连接处于打开状态,还是每次关闭它都有意义?WinForm通常每隔几秒钟调用一次该服务,因此,尝试使用一个公共副本,让所有这些不同的调用都可以访问,而不是每次打开一个新连接或关闭一个新连接,这可能更有意义。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Ladislav Mrnka    14 年前

    这取决于你的需要,因为这两种方法都是正确的。您可以将频道创建代码包装到某个助手中。您将拥有与当前使用的功能相同的功能,使用single place编辑频道创建代码(DRY原则)。服务的使用速度较慢,因为每次调用都会创建新的TCP连接。使用一些一次性助手类来表示您创建的连接。