HTTPモジュールでイベントを宣言したので、サブスクライバーにtrue / false値をポーリングして、HTTP応答を微調整するタスクを続行する必要があるかどうかを判断します。1人のサブスクライバーだけがtrueと答えた場合、そのサブスクライバーはそのロジックを実行します。
これは意味がありますか?
私が見ていない潜在的な落とし穴はありますか?
public class ResponseTweaker : IHttpModule {
// to be a list of subscribers
List<Func<HttpApplication, bool>> listRespondants = new List<Func<HttpApplication, bool>>();
// event that stores its subscribers in a collection
public event Func<HttpApplication, bool> RequestConfirmation {
add {
listRespondants.Add(value);
}
remove {
listRespondants.Remove(value);
}
}
public void Init(HttpApplication context) {
if (OnGetAnswer(context)) // poll subscribers ...
// Conditionally Run Module logic to tweak Response ...
}
/* Method that polls subscribers and returns 'true'
* if only one of them answers yes.
*/
bool OnGetAnswer(HttpApplication app) {
foreach (var respondant in listRespondants)
if (respondant(app))
return true;
return false;
}
// etc...
}