public SizedTcpDuplexChannelFactory(SizedTcpDuplexTransportBindingElement bindingElement, BindingContext context) : base(context.Binding) { // populate members from binding element int maxBufferSize = (int)bindingElement.MaxReceivedMessageSize; this.bufferManager = BufferManager.CreateBufferManager(bindingElement.MaxBufferPoolSize, maxBufferSize); Collection <MessageEncodingBindingElement> messageEncoderBindingElements = context.BindingParameters.FindAll <MessageEncodingBindingElement>(); if (messageEncoderBindingElements.Count > 1) { throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext"); } else if (messageEncoderBindingElements.Count == 1) { if (messageEncoderBindingElements[0].MessageVersion != MessageVersion.Soap12WSAddressing10) { throw new InvalidOperationException("This transport must be used with the an encoding with MessageVersion.Soap12WSAddressing10."); } this.encoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory(); } else { this.encoderFactory = new TextMessageEncodingBindingElement(MessageVersion.Soap12WSAddressing10, Encoding.UTF8).CreateMessageEncoderFactory(); } }
public SizedTcpDuplexTransportBindingElement(SizedTcpDuplexTransportBindingElement other) : base(other) { }