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); } } }
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); } }