Может быть, я упускаю что-то простое здесь, поэтому, пожалуйста, поправьте меня, если я. У меня есть локальный сервис и приложение WinForms, которые общаются через WCF, но у меня, похоже, в моем приложении много копий этого кода:
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 вызывает службу каждые несколько секунд, поэтому имеет смысл попытаться получить общую копию, к которой могут обращаться все эти различные вызовы, вместо того, чтобы каждый раз открывать новое соединение.