Exemplo n.º 1
0
        static void Main(string[] args)
        {
            //ListAllBindingElements(new WSHttpBinding());
            //GetBindingDefaultValue(new WSHttpBinding());

            //IClientChannel
            string      uri  = "http://127.0.0.1:9000/calculatorservice";
            ServiceHost host = new ServiceHost(typeof(Calculator), new Uri(uri));

            host.AddServiceEndpoint(typeof(ICalculator), new SimpleBinding(), "");

            if (host.Description.Behaviors.Find <ServiceMetadataBehavior>() == null)
            {
                ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
                behavior.HttpGetEnabled = true;
                behavior.HttpGetUrl     = new Uri("http://127.0.0.1:9000/calculatorservice/metadata");
                host.Description.Behaviors.Add(behavior);
            }
            try
            {
                host.Open();

                ChannelFactory <ICalculatorChannel> factory = new ChannelFactory <ICalculatorChannel>(new SimpleBinding(), uri);
                ICalculatorChannel proxy = factory.CreateChannel();
                Console.WriteLine(proxy.Add(2, 3));

                proxy.Close();// from IClientChannel

                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Exemplo n.º 2
0
        public static void Main()
        {
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();

            fileMap.ExeConfigFilename = "Test.config";
            Configuration newConfiguration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

            ConfigurationChannelFactory <ICalculatorChannel> factory1 = new ConfigurationChannelFactory <ICalculatorChannel>("endpoint1", newConfiguration, new EndpointAddress("http://localhost:8000/servicemodelsamples/service"));
            ICalculatorChannel client1 = factory1.CreateChannel();

            ConfigurationChannelFactory <ICalculatorChannel> factory2 = new ConfigurationChannelFactory <ICalculatorChannel>("endpoint2", newConfiguration, new EndpointAddress("net.tcp://localhost:8080/servicemodelsamples/service"));
            ICalculatorChannel client2 = factory2.CreateChannel();

            // Call the Add service operation.
            double value1 = 100.00D;
            double value2 = 15.99D;
            double result = client1.Add(value1, value2);

            Console.WriteLine("(HTTP)Add({0},{1}) = {2}", value1, value2, result);
            result = client2.Add(value1, value2);
            Console.WriteLine("(TCP) Add({0},{1}) = {2}", value1, value2, result);

            // Call the Subtract service operation.
            value1 = 145.00D;
            value2 = 76.54D;
            result = client1.Subtract(value1, value2);
            Console.WriteLine("(HTTP)Subtract({0},{1}) = {2}", value1, value2, result);
            result = client2.Subtract(value1, value2);
            Console.WriteLine("(TCP) Subtract({0},{1}) = {2}", value1, value2, result);

            // Call the Multiply service operation.
            value1 = 9.00D;
            value2 = 81.25D;
            result = client1.Multiply(value1, value2);
            Console.WriteLine("(HTTP)Multiply({0},{1}) = {2}", value1, value2, result);
            result = client2.Multiply(value1, value2);
            Console.WriteLine("(TCP) Multiply({0},{1}) = {2}", value1, value2, result);

            // Call the Divide service operation.
            value1 = 22.00D;
            value2 = 7.00D;
            result = client1.Divide(value1, value2);
            Console.WriteLine("(HTTP)Divide({0},{1}) = {2}", value1, value2, result);
            result = client2.Divide(value1, value2);
            Console.WriteLine("(TCP) Divide({0},{1}) = {2}", value1, value2, result);

            // Closing the connection gracefully and cleaning up resources
            client1.Close();
            client2.Close();

            Console.WriteLine("Press <ENTER> to exit.");
            Console.ReadLine();
        }