Учитывая, что у меня есть доступ только к ControllerContext
, а не к Action____Contexts
, каков оптимальный способ получить текущий исполняемый ActionDescriptor?
Пока единственный метод, который я нашел, это:
new ReflectedControllerDescriptor(context.Controller.GetType())
.FindAction(context, context.RouteData.GetRequiredString("action"));
Это оптимальный метод?
Тот факт, что класс называется ReflectedControllerDescriptor
, наводит меня на мысль, что эта операция требует больших затрат, поскольку она будет выполняться при каждом запросе страницы? Связано ли это с тем, что этот класс внутренне кэширует или я действительно должен кэшировать ReflectedControllerDescriptors
явно?
ReflectedControllerDescriptor
действительно кэшируется, но, возможно, я мог бы кэшировать свои вызовы FindAction? - person Chris Marisic   schedule 31.05.2012