// Called by the WCF to create the binding element protected override BindingElement CreateBindingElement() { RawMessageEncodingBindingElement bindingElement = new RawMessageEncodingBindingElement(); 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) { RawMessageEncodingBindingElement binding = (RawMessageEncodingBindingElement)bindingElement; PropertyInformationCollection propertyInfo = this.ElementInformation.Properties; var propertyInformation = propertyInfo["innerMessageEncoding"]; if (propertyInformation != null && propertyInformation.ValueOrigin != PropertyValueOrigin.Default) { switch (this.InnerMessageEncoding) { case "textMessageEncoding": binding.InnerMessageEncodingBindingElement = new TextMessageEncodingBindingElement(); break; case "binaryMessageEncoding": binding.InnerMessageEncodingBindingElement = new BinaryMessageEncodingBindingElement(); break; } } }