protected override BindingElement CreateBindingElement()
        {
            GZipMessageEncodingBindingElement gzipMessageEncodingBindingElement = new GZipMessageEncodingBindingElement();

            this.ApplyConfiguration(gzipMessageEncodingBindingElement);
            return(gzipMessageEncodingBindingElement);
        }
        public override void ApplyConfiguration(BindingElement bindingElement)
        {
            GZipMessageEncodingBindingElement gzipMessageEncodingBindingElement = (GZipMessageEncodingBindingElement)bindingElement;
            PropertyInformationCollection     properties = base.ElementInformation.Properties;
            string innerMessageEncoding;

            if (properties["innerMessageEncoding"].ValueOrigin != PropertyValueOrigin.Default && (innerMessageEncoding = this.InnerMessageEncoding) != null)
            {
                if (innerMessageEncoding == "textMessageEncoding")
                {
                    gzipMessageEncodingBindingElement.InnerMessageEncodingBindingElement = new TextMessageEncodingBindingElement();
                    return;
                }
                if (!(innerMessageEncoding == "binaryMessageEncoding"))
                {
                    return;
                }
                gzipMessageEncodingBindingElement.InnerMessageEncodingBindingElement = new BinaryMessageEncodingBindingElement();
            }
        }