Рассмотрим следующий код, который typcial многих ChannelFactory примеров:ChannelFactory.Close VS IClientChannel.Close
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? Кажется, я не вижу этого во многих примерах. Кроме того, если возможно, объясните разницу между открытием канала и открытием канала.
Кроме того, я знаю о IDisposable issue, поэтому его, вероятно, можно игнорировать ради этого вопроса, если он не оказывает прямого воздействия на ответ.
Я нашел ваш ответ неточным, когда вы говорите 'Если вы сделали, используя фабрику для создания каналов, нет никаких причин, чтобы не закрывать Оно деталь A.'. Это не удастся, если вы это сделаете - см. Мой ответ. – Aliostad