Esempio n. 1
0
        /// <summary>
        /// Example of using UDP where bindings and addresses are specified in config.
        /// </summary>
        static void Main(string[] args)
        {
            Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
            Console.WriteLine("Testing Udp Activation.");

            // 1. Start status service
            Console.WriteLine("Start the status service.");
            IStatusContract status = ChannelFactoryHelper.CreateSingleChannel <IStatusContract>("status");

            status.Start();

            // 2. Sending datagrams
            Console.WriteLine("Sending UDP datagrams.");
            Console.Write("Type a word that you want to say to the server: ");
            string            input    = Console.ReadLine();
            IDatagramContract datagram = ChannelFactoryHelper.CreateSingleChannel <IDatagramContract>("datagram");

            for (int i = 0; i < 5; i++)
            {
                string greeting = string.Format(CultureInfo.InvariantCulture, "{0}[{1}]", input, i);
                Console.WriteLine("    Sending datagram: {0}", greeting);
                datagram.Hello(greeting);
            }
            ((IChannel)datagram).Close();

            // 3. Calling UDP duplex contract
            Console.WriteLine("Calling UDP duplex contract (ICalculatorContract).");
            ICalculatorContract calculator = ChannelFactoryHelper.CreateSingleChannel <ICalculatorContract>("calculator");

            for (int i = 0; i < 5; ++i)
            {
                Console.WriteLine("    {0} + {1} = {2}", i, i * 2, calculator.Add(i, i * 2));
            }
            ((IChannel)calculator).Close();

            // 4. Check status service
            Console.WriteLine("Getting status and dump server traces:");
            string statusResult = status.GetStatus();

            string[] traces = statusResult.Split('|');
            for (int i = 0; i < traces.Length; i++)
            {
                Console.WriteLine("    {0}", traces[i]);
            }
            ((IChannel)status).Close();

            Console.WriteLine("Press <ENTER> to complete test.");
            Console.ReadLine();
        }
 public CalculatorContractToViewHostAdapter(ICalculatorContract contract)
 {
     this.contract = contract;
     handle        = new ContractHandle(contract);
 }