wcf ChannelFactory类
ChannelFacTory对象主要用在中间层,目的是提高系统的性能,并且不需要每次都为每个客户端实例化一个新的代理对象。
ChannelFactory<T>类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using Wrox.CarRentalService.Contracts; namespace Wrox.CarRentalService.ConsoleClient { class Program { static void Main(string[] args) { ChannelFactory<ICarRentalService> factory = null; try { BasicHttpBinding binding = new BasicHttpBinding(); EndpointAddress address = new EndpointAddress("http://localhost:9876/WroxCarRentalService"); factory = new ChannelFactory<ICarRentalService>(binding, address); ICarRentalService channel = factory.CreateChannel(); PriceCalculationResponse resp = channel.CalculatePrice (DateTime.Now, DateTime.Now.AddDays(5), "Graz", "Wien"); Console.WriteLine("Price to Wien {0}", resp.Price); factory.Close(); } catch (CommunicationException) { if (factory != null) { factory.Abort(); } } catch (TimeoutException) { if (factory != null) { factory.Abort(); } } catch (Exception ex) { if (factory != null) { factory.Abort(); } Console.WriteLine(ex.ToString()); } Console.WriteLine("Proxy closed"); } } }
2013-03-30