2013-07-08 36 views
1

我使用ServiceStack的IPlugin機制與由我的Service實現上的屬性定義的請求和響應過濾器結合使用。 attribute based filters可以有一個int來定義它們的優先級。如何定義ServiceStack請求/響應過濾器在由IPlugins定義時的運行順序?

定義global request/response filter時,似乎沒有辦法設置與其他全局請求/響應過濾器相比執行的順序。

例如,我希望我的執行時間插件的過濾器成爲第一個請求過濾器和最後一個響應過濾器,以充分捕獲請求的執行時間。

當通過IPlugin.Register添加請求/響應過濾器時,是否可以定義過濾器的優先級?

回答

1

我想,實際上(我希望德米斯會評論),那就是: IPlugin希望我們實施void Register(IAppHost apphost)。 APPHOST允許我們做

appHost.RequestFilters.Add(OnBeginRequest); 
appHost.ResponseFilters.Add(OnEndRequest); 

其中OnBeginRequestOnEndRequest是符合要求的委託,它的方法。

如果我再加入IHasRequestFilterIHasResponseFilterIPlugin執行,並更改方法的名稱相匹配(或叫出來,交給他們;爲準),然後執行優先返回自己的選擇和IHasRequestFilter Copy()IHasResponseFilter Copy()的整數,那麼我認爲我完成了;從插件註冊的優先全局過濾器。

+0

@mythz這是要做到這一點的方式......? –

相關問題