如何实现PostSharp的OnFieldAccessAspect之类的东西?

时间:2014-02-20 16:47:35

标签: c# aop postsharp

我正在阅读这个答案https://stackoverflow.com/a/1853790/196210,我想在我的项目中使用PostSharp但是当我开始阅读他们的执照时,我真的很失望。

访问属性时是否还有其他方法可以实现日志记录?

http://www.postsharp.net/purchase/faq

  

如何强制执行并发许可?

     

PostSharp定期将使用数据上传到我们的服务器,这些是   分析了许可证合规性。

     

是否有可能获得PostSharp Express公司许可证   整个团队?

     

没有。与PostSharp的商业版不同,免费PostSharp   Express许可证是命名用户许可证,因此需要每个许可证   开发人员查看自己的许可证。如果你需要公司   许可,选择PostSharp Professional或PostSharp Ultimate   版。

1 个答案:

答案 0 :(得分:1)

在编译时,您可以使用Roslyn将日志记录策略直接编织到语法树中。一种方法是自动为您的属性生成INotifyPropertyChanged实现。这可以通过遍历语法树来查找属性节点并修改它们来完成,包括相应的RaisePropertyChanged调用。这是一项相当多的工作,但最终您将拥有模块化和可扩展的日志记录方面。我找到了this post如何使用Roslyn动态生成代码,但official documentation也非常有用。