如何在控制器中使用 PostSharp LoggingAspect?
How to use PostSharp LoggingAspect in controller?
我正在尝试在方法执行完毕后执行一些日志记录逻辑。因此,我使用了 Postsharp 此处描述的基本示例,如下所示:
[PSerializable]
public class LoggingAspect : OnMethodBoundaryAspect
{
public override void OnExit(MethodExecutionArgs args)
{
Console.WriteLine("The {0} method has exited.", args.Method.Name);
}
}
然后,我尝试在不同的方法上使用这个属性LoggingAspect
。它适用于除控制器 class 以外的所有方法,如下所示:
[ApiController]
[Route("[controller]/[action]")]
public class HomeController : ControllerBase
{
[LoggingAspect]
[HttpGet]
public IEnumerable<Student> Get(string number, int? year)
{
...
}
}
我希望属性 LoggingAspect
适用于所有方法,但它在控制器中不起作用。我错过了什么吗?
事实证明,我在使用 LoggingAspect
属性的项目中没有引用 Postsharp。起初并不明显,因为该项目中没有构建或运行时错误。
我正在尝试在方法执行完毕后执行一些日志记录逻辑。因此,我使用了 Postsharp 此处描述的基本示例,如下所示:
[PSerializable]
public class LoggingAspect : OnMethodBoundaryAspect
{
public override void OnExit(MethodExecutionArgs args)
{
Console.WriteLine("The {0} method has exited.", args.Method.Name);
}
}
然后,我尝试在不同的方法上使用这个属性LoggingAspect
。它适用于除控制器 class 以外的所有方法,如下所示:
[ApiController]
[Route("[controller]/[action]")]
public class HomeController : ControllerBase
{
[LoggingAspect]
[HttpGet]
public IEnumerable<Student> Get(string number, int? year)
{
...
}
}
我希望属性 LoggingAspect
适用于所有方法,但它在控制器中不起作用。我错过了什么吗?
事实证明,我在使用 LoggingAspect
属性的项目中没有引用 Postsharp。起初并不明显,因为该项目中没有构建或运行时错误。