wcf ChannelFactory 클래스

4438 단어 channel
ChannelFacTory 객체는 시스템의 성능을 향상시키기 위해 주로 중간 계층에 사용되며 매번 각 클라이언트에 대해 새로운 프록시 객체를 인스턴스화할 필요가 없습니다.
ChannelFactory 클래스:
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

좋은 웹페이지 즐겨찾기