当前位置: 首页 > 知识库问答 >
问题:

如何实现PostSharp的OnFieldAccessAspect之类的功能?

易炳
2023-03-14

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

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

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

如何执行并发许可证?

PostSharp定期将使用情况数据上传到我们的服务器,并对这些数据进行分析以符合许可证要求。

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

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

共有1个答案

申浩广
2023-03-14

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

 类似资料:
  • 需求:实现一个功能,有多个span标签,内容为用户名,点击span标签,使其以tag的形式出现在一个contentEditable为true的div中,并且tag有背景色和4px的padding,tag不可编辑,当鼠标在div有焦点,则在当前焦点处插入tag,否则将tag加在最后面。 各位有什么实现方案吗 技术:在vue项目中。不要库。原生js实现

  • 本文向大家介绍如何实现一个全屏的功能?相关面试题,主要包含被问及如何实现一个全屏的功能?时的应答技巧和注意事项,需要的朋友参考一下 chrome下: 生产环境: 不同浏览器的实现方案不同,没有形成统一的标准。可以交由专门的类库———— screenFull实现。

  • 问题内容: 我有一个ajax调用,需要返回一个promise。功能如下 在执行下一个动作之前,我必须等待该功能执行。我该如何保证这个功能? 我尝试了以下操作,它给了我一个错误,说: 问题答案: 您有错误,因为它不是Promise。承诺异步功能非常容易(如今,nodejs具有内置的Promise支持):

  • 本文向大家介绍Django实现基于类的分页功能,包括了Django实现基于类的分页功能的使用技巧和注意事项,需要的朋友参考一下 开发个人博客时往往避免不了分页功能的实现,实现方法大体上分为函数和类两种。本文基于类实现分页功能,以下是详细代码: 通过修改per_page、max_page控制每页展示的文章数和分页模块展示的最大页码数。 实现思路:创建page类对象,传入参数为page_num(当前页

  • 本文向大家介绍C实现与 uint64_t 相同功能的类,包括了C实现与 uint64_t 相同功能的类的使用技巧和注意事项,需要的朋友参考一下 实现与 uint64_t 相同的类,如果平台不支持 uint64_t 的话,可以代替之。 目前只完成部分功能,其他功能敬请期待。 uint64.hpp uint64.cpp test.cpp 功能还在逐步完善中,小伙伴们记得关注。

  • 问题内容: 我正在开发一个Java桌面应用程序,其中需要实现回收站功能。目前: 我使用桌面应用程序将文件复制到名为回收站的文件夹中,然后删除原始文件。 我将目标路径存储在一个文本文件中,该文件已被删除,只是为了将文件还原到原始位置。 还原文件时,我只是将文件移到原始位置。 我的问题是,当从不同位置删除具有相同名称的文件时,所有移至由我创建的回收站文件夹和具有相同名称的旧文件的所有文件都将被覆盖。