我正在阅读这个答案https://stackoverflow.com/a/1853790/196210,我想在我的项目中使用PostSharp但是当我开始阅读他们的执照时,我真的很失望。
访问属性时是否还有其他方法可以实现日志记录?
http://www.postsharp.net/purchase/faq
如何强制执行并发许可?
PostSharp定期将使用数据上传到我们的服务器,这些是 分析了许可证合规性。
是否有可能获得PostSharp Express公司许可证 整个团队?
没有。与PostSharp的商业版不同,免费PostSharp Express许可证是命名用户许可证,因此需要每个许可证 开发人员查看自己的许可证。如果你需要公司 许可,选择PostSharp Professional或PostSharp Ultimate 版。
答案 0 :(得分:1)
在编译时,您可以使用Roslyn将日志记录策略直接编织到语法树中。一种方法是自动为您的属性生成INotifyPropertyChanged
实现。这可以通过遍历语法树来查找属性节点并修改它们来完成,包括相应的RaisePropertyChanged调用。这是一项相当多的工作,但最终您将拥有模块化和可扩展的日志记录方面。我找到了this post如何使用Roslyn动态生成代码,但official documentation也非常有用。