System.ServiceModel 4.0.0.0 System.Object System.Runtime.Serialization.DataContract System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchNoneMessageFilter)) System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.ActionMessageFilter)) System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.MatchAllMessageFilter)) System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.Dispatcher.XPathMessageFilter))

is an abstract class that developers implement in order to specify the criteria to use for inspecting messages. Typically, filters are used by an endpoint application to determine what to do with a message based on an examination of some part of the message. A queuing process, for example, can use an XPath 1.0 query to check the priority element of a known header to determine whether to move a message to the front of the queue.

Filters are stored in a filter table that implements . Each filter in the table is associated with specified filter data that can be used to indicate what actions to take if a message matches the filter. The methods are used to determine if a message satisfies a filter.

The criteria used by a filter cannot be changed once the filter is constructed because the filter tables have no way to detect a change. The only way to modify the criteria of a filter is to construct a new one and delete the existing filter.

The following classes implement the abstract class:

uses an XPath 1.0 expression to specify the criteria for a match.

matches all messages.

matches none of the messages.

tests whether the action of a message is one of a specified set of actions.

tests whether a message satisfies a specified endpoint address.

is an abstract base class that you can use for writing non-queuing listeners.

abstract base class for different classes of filters used to query messages.

- Constructor
  4.0.0.0

  The constructor is protected so that only filters that derive from can be instantiated.

  When called in a derived class, initializes a new instance of the class.

- Method
  4.0.0.0
  System.ServiceModel.Dispatcher.IMessageFilterTable<FilterData>

  This method is intended to be called by . Users should create a filter table by calling a constructor for the filter table. The default implementation of this method returns a filter table that calls the method of each filter sequentially. Override this method to associate a custom filter table when implementing a filter.

  Creates a filter table for a filter that has a specified type of data associated with it.

  An object to which filters associated with can be added.

  Data associated with the filters in the table.
- Method
  4.0.0.0
  System.Boolean ``

  This method cannot inspect the contents of the message body.

  When overridden in a derived class, tests whether a message satisfies the filter criteria. The body cannot be examined.

  true if the object satisfies the filter criteria; otherwise, false.

  The object to test.
- Method
  4.0.0.0
  System.Boolean ``

  The message must be fully buffered if the body is to be inspected by the filter. The body of the is fully buffered and therefore can be inspected by a filter. The body of a that has not been fully buffered may be consumed by the filter inspection. The header element of a is automatically buffered and therefore can be inspected without being consumed.

  When overridden in a derived class, tests whether a buffered message satisfies the criteria of a filter.

  true if the object satisfies the filter criteria; otherwise, false.

  The object to test.