我正在编写一个属性,我希望在该类上访问一个方法,该方法具有其动作之一的属性派生的控制器。这真是令人满口,所以让我解释一下:
protected bool IsSearchEngine()
(基类本身派生自Controller
)ActionFilterAttribute
并重载OnResultExecuting
。OnResultExecuting
方法有一个ResultExecutingContext
参数。 如何通过IsSearchEngine()
访问ResultExecutingContext
?
更新:到目前为止,我已经让编译器和智能感知接受了这个:
(filterContext.Controller as MyAssembly.Controllers.BaseControllerClass).IsSearchEngine()
这是正确的方法吗?我还没有测试过它。
答案 0 :(得分:1)
通过将resultExecutingContext.Controller
强制转换为BaseController
,您可以通过基本控制器的所有属性和方法进行访问,但您无法访问方法IsSearchEngine()
的保护级别。如果您按IsSerchEngine()
声明public
,则可以将其称为((BaseController)resultExecutingContext.Controller).IsSearchEngine()