System.ServiceModel 4.0.0.0 System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.ServiceModel.Dispatcher.MessageFilter,TFilterData>> System.Collections.Generic.IDictionary<System.ServiceModel.Dispatcher.MessageFilter,TFilterData> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.ServiceModel.Dispatcher.MessageFilter,TFilterData>> To be added.

The filter table is a core component of the filter engine. The primary use of the filter engine in indigo1 is to match application logic to messages by finding all the filters that match a message.

A filter table allows multiple filters to be matched against a single message more efficiently than they can be matched separately. A filter table associates filter data with filters. The table is a collection of key-value pairs, where the key is the , and the value is the associated filter data. Filter data can be any data of the type specified in the generic parameter and can be used to specify what actions to take if a message is matched by a filter in the table.

Filter table entries can be accessed using the functionality that inherits.

Note that a filter instance can only be added to a given once. To add multiple instances of this filter to the same filter table, use a filter constructor to create additional instances.

A filter matches a message when the message satisfies the query criteria of the filter. There are four overloaded matching methods. The data returned is either the filter data or the objects themselves. This data is returned whether multiple matches are allowed or only a single match. The following table shows this information for each overload.

Method Name

Matches

Data Returned

Single

Single

Multiple

Multiple

objects

Each method contains two overloads. The difference between the two overloads is that one takes a parameter and is not permitted to examine the contents of the body; the other takes a parameter and can examine any part of the message. If you call a method with the message parameter, and the filter table contains a filter that examines the content of the message body, an exception is thrown. If you are unsure about the filters in a table, call the overload that takes a message buffer.

Message headers are automatically buffered and can be inspected by a filter without being consumed. But if the body is to be inspected by a filter, then the entire message must be buffered because an unbuffered message body is consumed by a query and its contents destroyed.

The following classes implement :

An interface that defines the contract that a filter table must implement to inspect messages with query criteria derived from one or more filters.

- Method
  4.0.0.0
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Boolean `` ``

  Use this method when more than one filter is expected to match the message, the matching filters are required, and the body of the message does not have to be inspected.

  Returns a value that indicates whether the match criterion of a filter in the table is satisfied by the specified message, and adds the matching filters to a collection.

  true if the match criterion of at least one filter in the table is satisfied by ; false if no filter is satisfied.

  The to test. Reference parameter that stores the objects that match in <Filter>.
- Method
  4.0.0.0
  System.Boolean `` `` To be added.

  Use this method when more than one filter is expected to match the buffered message, the matching filter is required, and the body of the message may have to be inspected.

  Returns a value that indicates whether the match criterion of a filter in the table is satisfied by the specified buffered message, and adds the matching filters to a collection.

  true if the match criterion of at least one filter in the table is satisfied by ; false if no filter is satisfied.

  Reference parameter that stores the objects that match in <Filter>.
- Method
  4.0.0.0
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added.