我正在尝试创建一个记录器,它将LINQ执行的查询写入使用优秀的JavaScript库SyntaxHighlighter格式化的页面。
为此,我已将DataContext的Log属性设置为我的自定义记录器,该记录器运行良好。
现在我只需要获取当前的Controller对象(在控制器执行上下文之外),这样我就可以设置一些需要输出的ViewData。
有什么建议吗?
答案 0 :(得分:3)
如果你想在控制器之外执行操作,那么动作过滤器(等)是一个不错的选择;只需从ActionFilterAttribute
继承,覆盖OnActionExecuting
(等)以将数据注入视图,并使用[YourCustomFilter]
标记您的控制器。
(原创;我可能误解了)
最好在这里使用依赖注入,方法是将日志编写器作为构造函数参数传递到存储库中(理想情况下通过类似StructureMap的方式,通过StructureMapControllerFactory与MVC一起使用,或者类似)。