MessageFilter.Match 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當在派生類別中覆寫時,會測試訊息或緩衝訊息是否符合過濾器的條件。
多載
| 名稱 | Description |
|---|---|
| Match(Message) |
當在衍生類別中覆寫時,會測試訊息是否符合過濾條件。 屍體無法被檢查。 |
| Match(MessageBuffer) |
當在衍生類別中覆寫時,會測試緩衝訊息是否符合過濾器的條件。 |
備註
兩種過載的差別在於,使用者取一個 Message 參數後,不被允許檢查該物體。 另一個則是參數 MessageBuffer ,可以檢視訊息的任何部分。 訊息標頭會自動緩衝,且可被過濾器檢查而不會被消耗。 但若要被過濾器檢查主體,則整個訊息必須緩衝,因為未緩衝的訊息主體可能會被查詢消耗並銷毀其內容。
若不需檢查身體,則使用 Match 。 若需檢查訊息正文,則可使用 Match 。
Match(Message)
當在衍生類別中覆寫時,會測試訊息是否符合過濾條件。 屍體無法被檢查。
public:
abstract bool Match(System::ServiceModel::Channels::Message ^ message);
public abstract bool Match(System.ServiceModel.Channels.Message message);
abstract member Match : System.ServiceModel.Channels.Message -> bool
Public MustOverride Function Match (message As Message) As Boolean
參數
傳回
true 若 Message 物件符合過濾條件;否則, false。
備註
此方法無法檢查訊息內容。
給實施者的注意事項
若過濾器嘗試檢查未緩衝訊息的正文,則必須拋出一個 InvalidBodyAccessException。 它不應該回來 false。
適用於
Match(MessageBuffer)
當在衍生類別中覆寫時,會測試緩衝訊息是否符合過濾器的條件。
public:
abstract bool Match(System::ServiceModel::Channels::MessageBuffer ^ buffer);
public abstract bool Match(System.ServiceModel.Channels.MessageBuffer buffer);
abstract member Match : System.ServiceModel.Channels.MessageBuffer -> bool
Public MustOverride Function Match (buffer As MessageBuffer) As Boolean
參數
- buffer
- MessageBuffer
要 MessageBuffer 測試的對象。
傳回
true 若 MessageBuffer 物件符合過濾條件;否則, false。
備註
若要被過濾器檢查該訊息,訊息必須完全緩衝。 本體 MessageBuffer 完全緩衝,因此可以用濾網檢查。 未完全緩衝的 A Message 體可能會被過濾檢查消耗。 a Message 的標頭元素會自動緩衝,因此可以檢查而不被消耗。