public override void ApplyConfiguration(BindingElement bindingElement)
        {
            base.ApplyConfiguration(bindingElement);
            Microsoft.ServiceBus.Channels.ConnectionOrientedTransportBindingElement channelInitializationTimeout = bindingElement as Microsoft.ServiceBus.Channels.ConnectionOrientedTransportBindingElement;
            int?nullable = null;

            if (base.ElementInformation.Properties["maxBufferSize"].ValueOrigin != PropertyValueOrigin.Default)
            {
                nullable = new int?(this.MaxBufferSize);
            }
            if (channelInitializationTimeout == null)
            {
                RelayedOnewayTransportBindingElement connectionBufferSize = bindingElement as RelayedOnewayTransportBindingElement;
                if (connectionBufferSize == null)
                {
                    throw new InvalidCastException(SRClient.ExpectedTypeInvalidCastException(typeof(Microsoft.ServiceBus.Channels.ConnectionOrientedTransportBindingElement).ToString(), typeof(RelayedOnewayTransportBindingElement).ToString(), bindingElement.GetType().ToString()));
                }
                connectionBufferSize.ChannelInitializationTimeout = this.ChannelInitializationTimeout;
                connectionBufferSize.ConnectionBufferSize         = this.ConnectionBufferSize;
                connectionBufferSize.MaxPendingAccepts            = this.MaxPendingAccepts;
                connectionBufferSize.MaxPendingConnections        = this.MaxPendingConnections;
                if (nullable.HasValue)
                {
                    connectionBufferSize.MaxBufferSize = nullable.Value;
                    return;
                }
            }
            else
            {
                channelInitializationTimeout.ChannelInitializationTimeout = this.ChannelInitializationTimeout;
                channelInitializationTimeout.ConnectionBufferSize         = this.ConnectionBufferSize;
                channelInitializationTimeout.HostNameComparisonMode       = this.HostNameComparisonMode;
                channelInitializationTimeout.MaxPendingConnections        = this.MaxPendingConnections;
                channelInitializationTimeout.MaxOutputDelay    = this.MaxOutputDelay;
                channelInitializationTimeout.MaxPendingAccepts = this.MaxPendingAccepts;
                channelInitializationTimeout.TransferMode      = this.TransferMode;
                if (nullable.HasValue)
                {
                    channelInitializationTimeout.MaxBufferSize = nullable.Value;
                    return;
                }
            }
        }