【发布时间】:2015-01-08 13:56:22
【问题描述】:
我正在尝试在 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
【问题讨论】:
-
为什么 PostSharp 人会为网站“项目”而烦恼?它们不是项目,也没有其他类似的东西。它们是儿童的玩具。
-
@JohnSaunders 虽然我不同意你的观点,但你的评论没有帮助。
-
面向切面的编程并不简单。当为 Visual Studio 项目开发的工具不适用于网站“项目”时,这不足为奇,因为它们的独特之处在于没有项目文件。十年来,它们一直以这种方式“特别”。
-
PostSharp 依赖于 IL 编织(可能更多),这发生在项目构建之后。网站“项目”不建立。也许如果您使用预编译功能?但是当我使用 PostSharp 时,它在很大程度上依赖于 MSBUILD,也就是项目文件,而网站“项目”没有。他们必须使用完全不同的机制来处理网站“项目”。
-
是 ASP.NET 网站吗?访问以下内容:postsharp4aspnet.codeplex.com PostSharp 原生支持 ASP.NET Web 应用程序
标签: vb.net visual-studio-2012 aop postsharp web-site-project