Beispiel #1
0
        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);
            }
        }