/// <summary>
        /// Creates an instance of the binding element
        /// </summary>
        protected override BindingElement CreateBindingElement()
        {
            var bindingElement = new CompactMessageEncodingBindingElement();

            this.ApplyConfiguration(bindingElement);
            return(bindingElement);
        }
        /// <summary>
        /// Constructor, used with the Clone method
        /// </summary>
        /// <param name="originalBindingElement"></param>
        private CompactMessageEncodingBindingElement(CompactMessageEncodingBindingElement originalBindingElement)
        {
            _innerBindingElement = originalBindingElement._innerBindingElement;

            // The purpose of this code is to avoid the nesting of the same encoder within itself
            if (originalBindingElement._baseBindingElement == null)
            {
                _baseBindingElement = originalBindingElement;
            }
            else
            {
                _baseBindingElement = originalBindingElement._baseBindingElement;
            }
        }