Asynchroniczny filtr akcji w MVC 4
Mam filtr akcji, który w pewnych określonych warunkach musi wykonać wywołanie usługi internetowej, aby upewnić się, że bieżący stan jest poprawny. Początkowo wydawało się to idealnym kandydatem na async / oczekiwanie, ale natknąłem się na problem:
Załóżmy żądanie: / Test / FilteredAction
MyCustomActionFilter rozpoczyna wykonywanieOsiągnięto pierwsze „oczekiwanie”TestController.FilteredAction rozpoczyna wykonywanieMyCustomActionFilter wznawia wykonywanieTradycyjnie oczekiwałbym, że filtr akcji wznowi wykonywanie, a następnie dokończy, zanim działanie kontrolera rozpocznie się, ale tak się nie dzieje.
Teraz zakładam, że to dlatego, że używam:
public class MyCustomActionFilter : ActionFilterAttribute
{
public override **async** void OnActionExecuting(FilterContext context)
{
var foo = await WebServiceCall();
}
}
Myślę więc, że moje pytanie brzmi: czy w MVC 4 jest wbudowana klasa filtrów akcji z obsługą asynchroniczną, czy może powinienem zablokować wywołania tutaj?