Exemplo n.º 1
0
        public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
        {
            Console.WriteLine("{0}: ", clientOperation.Name);
            IClientMessageFormatter formatter = clientOperation.Formatter;

            Console.WriteLine("\t{0}", formatter.GetType().Name);

            if (formatter.GetType().Name != "CompositeClientFormatter")
            {
                return;
            }

            object innerFormatter = this.GetField(formatter, "request");

            Console.WriteLine("\t\t{0}", innerFormatter.GetType().Name);

            if (innerFormatter.GetType().Name == "UriTemplateClientFormatter")
            {
                innerFormatter = this.GetField(innerFormatter, "inner");
                Console.WriteLine("\t\t\t{0}", innerFormatter.GetType().Name);
                return;
            }

            if (innerFormatter.GetType().Name == "ContentTypeSettingClientMessageFormatter")
            {
                innerFormatter = this.GetField(innerFormatter, "innerFormatter");
                Console.WriteLine("\t\t\t{0}", innerFormatter.GetType().Name);

                if (innerFormatter.GetType().Name == "UriTemplateClientFormatter")
                {
                    innerFormatter = this.GetField(innerFormatter, "inner");
                    Console.WriteLine("\t\t\t\t{0}", innerFormatter.GetType().Name);
                }
            }
        }
Exemplo n.º 2
0
        public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation)
        {
            Console.WriteLine("{0}: ", clientOperation.Name);
            IClientMessageFormatter formatter = clientOperation.Formatter;

            Console.WriteLine("\t{0}", formatter.GetType().Name);

            if (formatter.GetType().Name != "CompositeClientFormatter")
            {
                return;
            }
            object innerFormatter = this.GetField(formatter, "reply");

            Console.WriteLine("\t\t{0}", innerFormatter.GetType().Name);

            if (innerFormatter.GetType().Name == "DemultiplexingClientMessageFormatter")
            {
                Dictionary <WebContentFormat, IClientMessageFormatter> formatters = this.GetField(innerFormatter, "formatters") as Dictionary <WebContentFormat, IClientMessageFormatter>;
                Console.WriteLine("\t\t\t{0, -4}: {1}", "Xml", formatters[WebContentFormat.Xml].GetType().Name);
                Console.WriteLine("\t\t\t{0, -4}: {1}", "Json", formatters[WebContentFormat.Json].GetType().Name);
            }
        }