【发布时间】:2014-08-22 13:57:16
【问题描述】:
我在 OperationContract 中使用 PostSharp - OnMethodBoundaryAspect。不过,这方面似乎并不火。我对 postsharp dll 有必要的参考。伪代码如下。
-
方面
[Serializable] [MulticastAttributeUsage(MulticastTargets.Method, Inheritance = MulticastInheritance.Multicast)] public class LoggingAspect : OnMethodBoundaryAspect { //Implementation for entry and exit } -
用法
[ServiceContract] public interface ITest { [OperationContract] [LoggingAspect(.....)] void Test(); }
非常感谢任何帮助
【问题讨论】:
-
添加对 PostSharp.dll 的引用是不够的,PostSharp 需要将自身安装到构建过程中。您的 *.csproj 文件中是否还导入了 PostSharp.targets?构建日志中是否有消息表明 PostSharp 已被调用?最后,如果你在实现类而不是接口中应用切面会发生什么?
-
我在 .csproj 中没有 PostSharp.targets。我已经在一个测试项目中安装了 nuget。在我的主要项目中;我只是在引用 postsharp dll。应该怎么做才能包含目标?
-
如果您已将 PostSharp 包添加到项目中,它应该会自动添加目标。请注意,您还需要将此包添加到包含此接口实现的项目中(以便 PostSharp 可以处理这些项目)。
-
是的,我也没有将其添加为对包含项目的引用。目标不见了。但现在我已经纠正了。谢谢亚历克斯和丹尼尔