任何管線元件(一般、組裝或拆解)如果必須支援訊息探查功能,可以實作 IProbeMessage 介面。 探查元件用於具有 FirstMatch 執行模式的管線階段。 在這類階段中,BizTalk 傳訊引擎會將訊息的開頭部分提供給元件,以判斷元件是否辨識訊息的格式。 如果元件辨識格式,則會將整個訊息提供給元件進行處理。
IProbeMessage 介面會公開單一方法 Probe,讓元件能夠檢查訊息的開頭部分。 傳回值會決定是否執行此元件。 下列步驟概述 BizTalk 傳訊引擎如何執行需要辨識的階段:
如果階段不包含任何元件,則階段不會執行,而且訊息會提供給後續階段進行處理。
檢查元件是否實作 IProbeMessage 介面。 如果沒有,傳訊引擎會叫用元件。 階段處理已完成,並將訊息提供給下一個階段。
會叫用 Probe 方法。 如果傳回值為 True,則會執行元件。 然後階段處理完成,並將訊息提供給下一個階段。
傳訊引擎會取得階段中的下一個元件。 如果沒有其他元件且未執行任何元件,則會產生管線處理失敗的錯誤。 如果沒有其他元件,而且至少有一個元件已執行,則會完成處理。
如果階段不需要辨識(例如,執行模式為 All),傳訊引擎會叫用元件,而不先查詢 IProbeMessage 介面並呼叫 Probe 方法。