【问题标题】:How can I implement something like OnFieldAccessAspect of PostSharp?如何实现 PostSharp 的 OnFieldAccessAspect 之类的东西?
【发布时间】:2014-03-21 18:40:41
【问题描述】:

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

在访问属性时有没有其他方法可以实现日志记录?

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

如何执行并发许可证?

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

是否有可能获得 PostSharp Express 公司许可证以用于我们的 整个团队?

没有。与 PostSharp 的商业版不同,免费的 PostSharp Express 许可证是指定用户许可证,因此需要每个 开发人员检查他们自己的许可证。如果你需要陪伴 许可,选择 PostSharp Professional 或 PostSharp Ultimate 版。

【问题讨论】:

  • 请注意,可以根据商业 PostSharp 许可证的需要禁用许可证审核。然而,与所有供应商所做的相比,许可证审核是一种更便于客户执行许可证的方式。
  • @GaelFraiteur:是的.. 对我来说,尝试这个软件变得非常困难(在工作时间免费)。我认为如果你已经有一个非常坚实的基础,你可以开始“无聊”的人。如果你不让开发者去尝试,它会很难成长。他们有一个基本版本。停止。让人们使用它。想让人们付钱吗?好的.. 给他们更多的功能,但不要用奇怪的许可证惹恼他们.. 在我看来是肯定的。

标签: c# aop postsharp


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2019-09-09
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多