簡體   English   中英

WEB API:如何將值從ActionFilter傳遞到存儲庫

[英]WEB API: How to pass value from ActionFilter to Repository

我有ActionFilter可以從Request Header獲取一些值。 然后將它們存儲在Request.Properties如下所示:

actionContext.Request.Properties.Add("technician", username);
actionContext.Request.Properties.Add("secret", secret);

現在,我想在TaskRepository獲取此值。

我的控制器構造函數:

public TaskController(ITaskRepository repository)  
{
    _repository = repository;
}

我無法在此處獲取屬性,因為在已經選擇並創建控制器后, ActionFilters執行。

我可以在Controller的每個操作中獲取屬性,並將其傳遞到存儲庫,但是我認為這不是正確的方法。

我的問題是如何將值從ActionFilter傳遞到Repository

感謝您的時間。

我終於做到了。

首先,我為IHTTPController編寫Extension方法,如下所示:

public static void SetCredentialsToRepository(this IHttpController controller, string technician, string secret);

然后我像這樣實現此功能:

public void SetCredentialsToRepository(string technician, string secret)
{
    _repository.SetCredentials(technician, secret);
}

然后在我的ActionFilter中調用此方法:

actionContext.ControllerContext.Controller.SetCredentialsToRepository(username, secret);

暫無
暫無

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

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