那里的大量项目非常令人生畏.我查看了www.ohloh.net,它允许很好的排序和过滤,但是不容易看出哪些项目会欢迎新手,或者有一些简单的入门错误要修复的项目,甚至是docco要做的项目.
我有一个System.Web.Http.ApiController派生的控制器:
[LoggingFilterApi]
public class BaseController : ApiController
{
public IHttpActionResult Ads();
}
Run Code Online (Sandbox Code Playgroud)
过滤器定义如下:
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
namespace pecom.Common.Filters
{
public class LoggingFilterApiAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext ctx)
{
var msg = ctx.ActionDescriptor.ControllerDescriptor.ControllerType.Name + "." + ctx.ActionDescriptor.ActionName +
"(" + ctx.Request.RequestUri.ToString();
ILog logger = LogManager.GetLogger(ctx.ActionDescriptor.ControllerDescriptor.ControllerType);
logger.Info(msg);
base.OnActionExecuting(ctx);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果LoggingFilterApiAttribute.cs是控制器的组成部分.csproj,OnActionExecuting如预期被调用.但是,如果LoggingFilterApiAttribute.cs移动到另一个.csproj(以方便代码重用),OnActionExecuting则不会按预期调用.奇怪的.
谁见过这个?目前我在我们的项目中复制过滤器,这有点不太理想.这是ASP.NET MVC 5.2.
干杯,皮特