MessageFilter.Match 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在衍生類別中覆寫時,測試訊息或緩衝訊息是否符合篩選條件的準則。
多載
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 的本文會獲得完整的緩衝,因此可以由篩選條件檢查。 尚未完整緩衝的 Message 本文,可能會由篩選檢查取用。 Message 的標頭項目會自動獲得緩衝,因此可以由篩選條件進行檢查,而不被取用。