質問

フォローしていたサンプルMVC3コードに出会いました Global.asax ファイル:

public static void RegisterGlobalFilters(....)
{
    filters.Add(new MyFilter1());
    ....
    var provider = new MyFilterProvider();
    provider.Add(c => c.HttpContext.IsDebuggingEnabled ? new MyProvider2() : null);
    FilterProviders.Providers.Add(provider)
}

両方 MyProvider1MyProvider2 で実装されています IResultFilter, 、そして私はそれらの1つが追加される理由を混乱させています FilterProviders もう1つはグローバルフィルターとして登録されています。

なぜ、いつカスタムフィルターを追加する必要があります FilterProvider, 、そしていつ、いつそれらをグローバルフィルターとして登録すべきですか?

役に立ちましたか?

解決

にフィルターを追加するとき GlobalFilters.Filters リクエストごとにフィルターが実行されます。

あなたが追加するとき IFilterProviderFilterProviders.Providers フィルタープロバイダーは、特定のフィルターが現在の要求に適用されるかどうかを決定する機会があります。

FilterProviders その間、より大きなコントロールを提供します GlobalFilters サイト全体のフィルターを簡単に登録できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top