我正在执行ActionFilterAttribute的OnResultExecuting
public override void OnResultExecuting(ResultExecutingContext context)
{
//here
base.OnResultExecuting(context);
}
这时context.Result包含一个ViewResult。该视图将(或已经)注入了服务。
@model IMyModel
@inject IMyService MyService
我想在MyService上调用方法。
public override void OnResultExecuting(ResultExecutingContext context)
{
var myService = //...
myService.DoStuff();
base.OnResultExecuting(context);
}
如何获取将要注入的对象?或者,我可以提供将要注入的对象吗?
答案 0 :(得分:2)
我认为您可以通过HttpContext
来做到这一点:
using Microsoft.Extensions.DependencyInjection;
...
var myService = context.HttpContext.RequestServices.GetService<IMyService>();