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