Example #1
0
 public WcfContextFormatterBehavior(IOperationBehavior innerFormatterBehavior,
                                    IWcfMessageEncodingController messageEncodingController, ServiceEndpoint endpoint)
 {
     _innerFormatterBehavior = innerFormatterBehavior;
     _endpoint = endpoint;
     _messageEncodingController = messageEncodingController;
 }
Example #2
0
        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));
        }
Example #3
0
 public WcfClientMessageFormatter(IClientMessageFormatter innerClientFormatter,
                                  WcfMessageEncodingContext context, IWcfMessageEncodingController controller)
 {
     if (innerClientFormatter == null)
     {
         throw new ArgumentNullException("innerClientFormatter");
     }
     _innerClientFormatter = innerClientFormatter;
     _context    = context;
     _controller = controller;
 }