是否需要wcf web service.close

时间:2014-04-30 13:43:46

标签: .net wcf

我有一些如下所示的代码,似乎可以根据需要运行。我的问题是 - 是否有必要建立webservice.close?这将超出子结束范围。我问的主要原因是wsClient最终获得了代码警告,

变量' wsClient'在被赋值之前使用。在运行时可能会产生空引用异常。

最好的结果可能是重组并保持.close并摆脱警告。

    Dim wsClient As wsGates.ConsoleClient

    Try
        wsClient = New wsGates.ConsoleClient
        Dim wsRet As wsGates.clsReturn

        wsRet = wsClient.Phase1Validate("15024")
    Catch

    Finally
        If wsClient IsNot Nothing Then wsClient.Close()
    End Try

End Sub

2 个答案:

答案 0 :(得分:1)

如果您不关闭它,底层频道可能会保持打开状态。虽然当对象是GC或您的应用程序退出时最终可能会关闭,但最好关闭它以尽快释放资源。

我建议使用Try

,而不是使用Using语句
Using wsClient As New wsGates.ConsoleClient
    Dim wsRet As wsGates.clsReturn

    wsRet = wsClient.Phase1Validate("15024")
End Using

答案 1 :(得分:0)

不需要关闭wsClient,因为它仅限于该方法。在该方法执行后,自动手动销毁对象。