public WcfContextFormatterBehavior(IOperationBehavior innerFormatterBehavior, IWcfMessageEncodingController messageEncodingController, ServiceEndpoint endpoint) { _innerFormatterBehavior = innerFormatterBehavior; _endpoint = endpoint; _messageEncodingController = messageEncodingController; }
public static void ReplaceFormatterBehavior(OperationDescription operationDescription, IWcfMessageEncodingController messageEncodingController, ServiceEndpoint endpoint) { // look for and remove the DataContract behavior if it is present IOperationBehavior formatterBehavior = operationDescription.Behaviors.Remove <DataContractSerializerOperationBehavior>(); if (formatterBehavior == null) { // look for and remove the XmlSerializer behavior if it is present formatterBehavior = operationDescription.Behaviors.Remove <XmlSerializerOperationBehavior>(); if (formatterBehavior == null) { // look for delegating formatter behavior var contextFormatterBehavior = operationDescription.Behaviors.Find <WcfContextFormatterBehavior>(); if (contextFormatterBehavior == null) { throw new InvalidOperationException( "Could not find DataContractFormatter or XmlSerializer on the contract"); } } } operationDescription.Behaviors.Insert(0, new WcfContextFormatterBehavior(formatterBehavior, messageEncodingController, endpoint)); }
public WcfClientMessageFormatter(IClientMessageFormatter innerClientFormatter, WcfMessageEncodingContext context, IWcfMessageEncodingController controller) { if (innerClientFormatter == null) { throw new ArgumentNullException("innerClientFormatter"); } _innerClientFormatter = innerClientFormatter; _context = context; _controller = controller; }