.net 4.0 如何向非MVC项目添加ActionFilter?

.net 4.0 如何向非MVC项目添加ActionFilter?,.net-4.0,action-filter,.net 4.0,Action Filter,我有几个用f/x4.0编写的项目,它们不是MVC。没有网络参与。事实上,一个是Windows服务,另一个是用于Win窗体或命令行处理的一组库。现在,在MVC3中,您可以执行以下操作: using System; using System.Collections.Generic; using System.Web.Mvc; namespace RivWorks.FeedHandler.Library { class AttributeLogsRequest : ActionFilterA

我有几个用f/x4.0编写的项目,它们不是MVC。没有网络参与。事实上,一个是Windows服务,另一个是用于Win窗体或命令行处理的一组库。现在,在MVC3中,您可以执行以下操作:

using System;
using System.Collections.Generic;
using System.Web.Mvc;

namespace RivWorks.FeedHandler.Library
{
    class AttributeLogsRequest : ActionFilterAttribute, IActionFilter
    {
        void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
        {
            // do something here...
        }

        void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {
            // do something here...
        }
    }
}
现在,您只需将ActionFilter添加到方法或类定义中,上述两个调用将自动发生:

[AttributeLogsRequest]
public class MyController
{
    ...
}
我的问题是:除了ActionFilterAttribute,IActionFilter之外,还有什么可以用来为我的代码创建非MVC依赖的过滤器吗?ActionFilterAttribute,IActionFilter提供了非常以MVC为中心的信息,如ControllerName、Action、HttpContext等。必须有一种更简单的方法为横切关注点创建一个简单的过滤器


TIA

看起来您需要一些AOP库来完成这项工作

外面有很多。您可以尝试以下方法之一: