protected override bool IsMatch(BindingElement b)
        {
            if (!base.IsMatch(b))
            {
                return(false);
            }
            MtomMessageEncodingBindingElement mtom = b as MtomMessageEncodingBindingElement;

            if (mtom == null)
            {
                return(false);
            }
            if (_maxReadPoolSize != mtom.MaxReadPoolSize)
            {
                return(false);
            }
            if (_maxWritePoolSize != mtom.MaxWritePoolSize)
            {
                return(false);
            }

            // compare XmlDictionaryReaderQuotas
            if (_readerQuotas.MaxStringContentLength != mtom.ReaderQuotas.MaxStringContentLength)
            {
                return(false);
            }
            if (_readerQuotas.MaxArrayLength != mtom.ReaderQuotas.MaxArrayLength)
            {
                return(false);
            }
            if (_readerQuotas.MaxBytesPerRead != mtom.ReaderQuotas.MaxBytesPerRead)
            {
                return(false);
            }
            if (_readerQuotas.MaxDepth != mtom.ReaderQuotas.MaxDepth)
            {
                return(false);
            }
            if (_readerQuotas.MaxNameTableCharCount != mtom.ReaderQuotas.MaxNameTableCharCount)
            {
                return(false);
            }

            if (_maxBufferSize != mtom.MaxBufferSize)
            {
                return(false);
            }

            if (WriteEncoding.EncodingName != mtom.WriteEncoding.EncodingName)
            {
                return(false);
            }
            if (!MessageVersion.IsMatch(mtom.MessageVersion))
            {
                return(false);
            }

            return(true);
        }
 MtomMessageEncodingBindingElement(MtomMessageEncodingBindingElement elementToBeCloned)
     : base(elementToBeCloned)
 {
     _maxReadPoolSize  = elementToBeCloned._maxReadPoolSize;
     _maxWritePoolSize = elementToBeCloned._maxWritePoolSize;
     _readerQuotas     = new XmlDictionaryReaderQuotas();
     elementToBeCloned._readerQuotas.CopyTo(_readerQuotas);
     _maxBufferSize  = elementToBeCloned._maxBufferSize;
     _writeEncoding  = elementToBeCloned._writeEncoding;
     _messageVersion = elementToBeCloned._messageVersion;
 }