簡體   English   中英

為方法參數創建自定義FilterAttribute

[英]Creating custom FilterAttribute for method parameters

是否可以為傳入參數創建自定義FilterAttribute? 通常,屬性用於方法和類。

例如我的想法是:

public HttpResponseMessage GetAll([CultureInfo]string culture)

{ if(valid) { // code here } }

CultureInfo是一個從ActionFilterAttribute繼承的類(CultureInfoAttribute),在這里我可以使用2個稱為OnActionExecuted和OnActionExecuting的方法。 在我的課堂上,我使用了下一個屬性,因此可以在參數上使用它:

[AttributeUsage(AttributeTargets.Parameter)]

當我構建並調用GetAll(“ culture”)時,自定義過濾器中的OnActionExecuting方法永遠不會被調用....當我將屬性放在方法GetAll()上方時,它確實會被調用。

有人有經驗嗎?

我想這樣做的原因是因為我可以將屬性放在不同的參數上,而不是一次將整個方法放在上面。

我認為您的問題在這里得到了回答:

您應該像這樣在Global.asax.cs GlobalFilters中注冊過濾器:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
    filters.Add(new CultureInfoAttribute());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM