篩選 COM+ 中的事件

COM+ 事件提供兩種方式來控制哪些事件到達哪些訂閱者: 發行者篩選參數篩選

發行者篩選

發行者篩選會控制事件類別物件對事件方法的順序和引發。 發行者篩選可讓發行者判斷哪些訂閱者會收到特定事件。

有效使用發行者篩選的範例是證券交易所。 大多數訂閱者想知道何時新增股票。 不過,每當每個股票價格變更時,其中許多相同的訂閱者可能不想知道。 發行者篩選提供有效傳遞事件所需的粒度,只提供給想要此資訊的訂閱者。

在具現化事件類別物件上叫用方法時,它會收集該方法上的任何發行者篩選。 篩選會強制事件物件向特定訂閱者引發事件方法。 篩選條件會決定要引發的訂用帳戶,以及要引發訂閱的順序。 例如,篩選條件可以讀取訂閱清單,並根據某些應用程式準則建立訂單,然後依該順序呼叫訂閱者。

如需建立發行者篩選的詳細指示,請參閱 建立發行者篩選

參數篩選

相較於發行者篩選,COM+ 事件服務會為每個訂閱和每個事件方法調用提供選擇性訂閱者參數篩選。 參數篩選會根據事件方法的參數評估訂用帳戶 FilterCriteria 屬性。 這種類型的篩選會以每個方法、每個訂用帳戶為基礎使用,並提供事件來源的訂閱者篩選層級。 篩選準則字串可辨識關係運算符來檢查相等性(=、==、, !=、~、~=、 <>)、巢狀括弧和邏輯關鍵詞 ANDORNOT

參數篩選會在任何發行者篩選之後發生,以及針對指定訂閱引發標準事件物件時。 如果使用發行者篩選,只有當發行者篩選 叫用 IFiringControl::FireSubscription 時,才會發生參數篩選。 因此,發行者篩選和參數篩選可以組合在一起,但發行者篩選優先。

在 COM+ 中發佈和傳遞事件

訂用帳戶

COM+ 事件類別物件

搭配 COM+ 佇列元件使用 COM+ 事件