![](/img/trans.png)
[英]Web API + Azure App Insights pass the data from ActionFilter to ITelemetryProcessor
[英]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.