【问题标题】:Is there a C# equivalent of Java's Annotation Processing Tool (apt)?是否有与 Java 的注释处理工具 (apt) 等效的 C#?
【发布时间】:2012-01-15 06:31:46
【问题描述】:

Java 的 apt 工具允许您在编译时根据您在代码中放置的注释执行代码。 C# 具有属性,其工作方式类似于 Java 的注解,但尽我所能,我似乎找不到为 C# 提供与 apt 为 Java 提供相同功能的现成工具(最好是开源工具)。有这样的工具吗?

【问题讨论】:

    标签: c# java attributes annotations apt


    【解决方案1】:

    看看 fody,一个用于编织 .net 程序集的可扩展工具: https://github.com/Fody/Fody

    【讨论】:

    • Fody 使用另一条评论中提到的 Mono.Cecil。
    【解决方案2】:

    简短的回答是不。

    但如果你愿意做你自己的工具,例如看看Mono.Cecil。它允许检查和修改程序集。如果使用 Visual Studio(或类似工具),您可以设置一个项目,以便它在构建后执行命令(即执行基于 Mono.Cecil 的工具)。

    【讨论】:

      【解决方案3】:

      有一些。如:

      1. Sprint.Net(开源?)http://www.springframework.net/doc-latest/reference/html/aop.html
      2. Postsharp(花钱)http://www.sharpcrafters.com/aop.net/custom-attributes
      3. 教程(开源)http://www.codeproject.com/KB/architecture/aopsimplestscenario.aspx

      我使用的谷歌搜索是:

      https://www.google.com/search?q=.net+aop+attributes&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

      我之前快速浏览过 PostSharp,它看起来非常整洁。 Sprint.Net 是我相信的 java Sprint 库的一个端口。还有许多代码生成库,您可以通过反映您的程序集和执行您的逻辑来利用它们。

      【讨论】:

      • Spring 是那些臃肿的框架之一,如果我只需要简单的 AOP,我就不会使用它。
      • AOP(面向切面的编程)不是 APT(注解处理)。前者也称为“增强”或“编织”,后者通常是“基于正在编译的代码的‘模型’的代码生成”。它们是完全不同的东西——以上链接都与 AOP 相关,而不是 APT。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 2019-11-06
      • 2010-12-23
      相关资源
      最近更新 更多