我试图在VS2012的网站项目中使用PostSharp方面。当我设置一个Web应用程序项目时似乎工作正常,但是当我将aspect属性应用于网站项目中页面上的方法时,它编译并运行正常,但我的OnMethodBoundaryAspect永远不会受到攻击。我尝试设置断点并从方面方法中记录。
PostSharp支持网站项目吗?如果是的话,我错过了什么?
请不要评论我为什么要使用网站而不是网络应用。不幸的是,这是一项要求(不要问)。
这是我的方面代码(全部在vb.net中),但就像我说的,它在Web应用程序项目中运行良好:
Imports PostSharp.Aspects
Namespace TestAopLib
<Serializable>
Public Class AopTester
Inherits OnMethodBoundaryAspect
Public Overrides Sub OnEntry(args As MethodExecutionArgs)
MyBase.OnEntry(args)
Debug.WriteLine("In OnEntry")
End Sub
Public Overrides Sub OnExit(args As MethodExecutionArgs)
MyBase.OnExit(args)
Debug.WriteLine("In OnExit")
End Sub
Public Overrides Sub OnSuccess(args As MethodExecutionArgs)
MyBase.OnSuccess(args)
Debug.WriteLine("In OnSuccess")
End Sub
Public Overrides Sub OnException(args As MethodExecutionArgs)
MyBase.OnException(args)
Debug.WriteLine("In OnException")
End Sub
End Class
End Namespace
答案 0 :(得分:1)
有一个open-source project可以实现这一点(CodingSource也提到过)。但是,它是针对PostSharp 2.x完成的,既不推荐也不支持(如项目主页上所述)。如果没有重大问题,它很可能不适用于PostSharp 3+。
PostSharp(目前)通过MSBuild集成(John Saunders也提到),网站项目不使用它。
虽然它的核心PostSharp是一个命令行工具,它从MSBuild获取了大量信息,但它很难单独工作(既不建议也不记录也不支持)。
P.S。:我目前正在为PostSharp技术工作。