title: IDispatchMessageFormatter not applied through ServiceBehavior
body: <p>I need to apply a custom message formatter to all operations within a service.</p>
  
  <p>Rather than apply an OperationBehavior manually to all the operations, I am attempting to loop through all operations from within a ServiceBehavior thusly (the details of my serializer aren't important, just that it implements IDispatchMessageFormatter):</p>
  
  <pre><code>public void ApplyDispatchBehavior(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase) {
      foreach (ChannelDispatcher channelDispatcher in serviceHostBase.ChannelDispatchers) {
          foreach (EndpointDispatcher endpointDispatcher in channelDispatcher.Endpoints.Where(e =&gt; !e.IsSystemEndpoint)) {
              foreach (DispatchOperation dispatchOperation in endpointDispatcher.DispatchRuntime.Operations) {
                  LoggedOperationSerializer serializer = new LoggedOperationSerializer(dispatchOperation.Formatter);
                  dispatchOperation.Formatter = serializer;
              }
          }
      }
  }
  </code></pre>
  
  <p>The serializer seems to get set fine, with no errors. However, the DeserializeRequest method on LoggedOperationSerializer is never hit when I set a breakpoint and debug.</p>
  
  <p>If instead I apply the formatter inside an OperationBehavior like this:</p>
  
  <pre><code>public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) {
      LoggedOperationSerializer serializer = new LoggedOperationSerializer(dispatchOperation.Formatter);
      dispatchOperation.Formatter = serializer;
  }
  </code></pre>
  
  <p>then the DeserializeRequest method is hit as expected.</p>
  
  <p>If I apply both a ServiceBehvior and an OperationBehavior as shown and attach a debugger, as expected, the first code block shown is hit first, iterating through all operations on the service, and the formatter is set. However, by the time that the ApplyDispatchBehavior for the OperationBehavior is hit, the formatter set above has "fallen off", and has been replaced by the default CompositeDispatchFormatter.</p>
  
  <p>I really don't want to have to apply an OperationBehavior manually to all operations to get this to work... any ideas on why what might be happening? </p>
  
  <p>This is using WebHttpBinding in case that is at all relevant, I don't know why it would be though.</p>