public static MessageEncoderFactory GetEncoder(BindingContext context) { MessageEncodingBindingElement messageEncoderBindingElement = context.BindingParameters.Remove <MessageEncodingBindingElement>(); MessageEncoderFactory factory = null; if (messageEncoderBindingElement != null) { factory = messageEncoderBindingElement.CreateMessageEncoderFactory(); } else { factory = UdpConstants.Defaults.MessageEncoderFactory; } return(factory); }
internal MessageEncoder CreateEncoder <TChannel> (MessageEncodingBindingElement mbe) { var f = mbe.CreateMessageEncoderFactory(); var t = typeof(TChannel); if (t == typeof(IRequestSessionChannel) || #if !NET_2_1 t == typeof(IReplySessionChannel) || #endif t == typeof(IInputSessionChannel) || t == typeof(IOutputSessionChannel) || t == typeof(IDuplexSessionChannel)) { return(f.CreateSessionEncoder()); } else { return(f.Encoder); } }