//Called by the WCF to create the binding element protected override BindingElement CreateBindingElement() { GZipMessageEncodingBindingElement bindingElement = new GZipMessageEncodingBindingElement(); this.ApplyConfiguration(bindingElement); return(bindingElement); }
//Called by the WCF to apply the configuration settings (the property above) to the binding element public override void ApplyConfiguration(BindingElement bindingElement) { GZipMessageEncodingBindingElement binding = (GZipMessageEncodingBindingElement)bindingElement; PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; if (propertyInfo["innerMessageEncoding"].ValueOrigin != PropertyValueOrigin.Default) { switch (this.InnerMessageEncoding) { case "textMessageEncoding": var innerMessageEncodingBindingElement = new TextMessageEncodingBindingElement(); ReaderQuotaHelper.SetReaderQuotas(innerMessageEncodingBindingElement.ReaderQuotas); binding.InnerMessageEncodingBindingElement = innerMessageEncodingBindingElement; break; case "binaryMessageEncoding": var binaryMessageEncodingBindingElement = new BinaryMessageEncodingBindingElement(); ReaderQuotaHelper.SetReaderQuotas(binaryMessageEncodingBindingElement.ReaderQuotas); binding.InnerMessageEncodingBindingElement = binaryMessageEncodingBindingElement; break; } } }