Рассмотрим следующий код, который является типичным для многих примеров ChannelFactory:
WSHttpBinding myBinding = new WSHttpBinding();
EndpointAddress myEndpoint = new EndpointAddress(
ConfigurationSettings.AppSettings["HelloWorldServiceURL"]);
ChannelFactory<IHelloWorldService> myChannelFactory =
new ChannelFactory<IHelloWorldService>(myBinding, myEndpoint);
IHelloWorldService proxy = myChannelFactory.CreateChannel();
((IClientChannel)proxy).Open();
HelloWorldDataContract dc = proxy.SayHello();
((IClientChannel)proxy).Close();
Обратите внимание, что когда вызывается proxy.Open(), и состояние канала, и состояние ChannelFactory становятся "открытыми". Когда вызывается proxy.Close(), состояние канала становится "закрытым", но состояние ChannelFactory остается "Opened".
Следует ли закрывать ChannelFactory? Кажется, я не вижу этого во многих примерах. Кроме того, если возможно, объясните разницу между открытием канала и открытием канала factory.
Кроме того, я знаю о проблеме IDisposable, поэтому, вероятно, это может быть проигнорировано ради этого вопроса, если оно не оказывает прямого влияния на ответ.