9
votes

Y a-t-il un équivalent C # de l'outil de traitement d'annotation de Java (APT)?

L'outil APT de Java vous permet d'exécuter du code lors de la compilation en fonction des annotations que vous placez dans votre code. C # a des attributs, qui fonctionnent comme les annotations de Java, mais essayez car je ne peux pas sembler trouver un outil prêt à l'emploi (idéalement une source ouverte) qui fournit la même fonctionnalité pour C # comme APT le fait pour Java. Un tel outil existe-t-il?


0 commentaires

3 Réponses :


2
votes

Il y en a. Comme:

  1. sprint.net (open source?) http: // www. Springframework.net/doc-latest/reeference/html/aop.html
  2. postSharp (coûts de l'argent) http://www.sharprafters.com/aop.net / attributs personnalisés
  3. Un tutoriel (open source) http://www.codeproject.com/kb/ Architecture / AOPSIMPLESTSCENOA.ASPX

    La recherche Google que j'ai utilisée était:

    https://www.google.com/search?q=.net+aop+atributes&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:Ren-us:oFficial&client= Firefox-A

    J'ai examiné le postSharp rapidement avant et ça a l'air très bien rangé. Sprint.net est un port de la bibliothèque de sprint Java que je crois. Il existe également de nombreuses bibliothèques de génération de code là-bas que vous pouvez exploiter en réfléchissant sur vos assemblages et en effectuant votre logique.


2 commentaires

Le printemps est l'un de ces cadres gonflés que je n'irai pas si je n'ai besoin que d'un AOP simple.


AOP (Programmation orientée orientée) n'est pas APT (traitement de l'annotation). Les premiers étant également appelés "améliorations" ou "tissage" et le plus tard sont le plus souvent "génération de code basée sur le" modèle "du code étant compilé". Ce sont des choses très différentes - les liens ci-dessus sont tous concernés par l'AOP et non APT.



2
votes

La réponse courte est non.

Mais si vous êtes prêt à faire votre propre outil, jetez un coup d'œil à mono.cecil par exemple par exemple . Il permet d'inspecter et de modifier un assemblage. Si vous utilisez Visual Studio (ou similaire), vous pouvez configurer un projet afin qu'il exécute des commandes après bâtiment (c'est-à-dire exécute votre outil basé sur mono.cecil).


0 commentaires

2
votes

Prendre un look AF Fody, un outil extensible pour le tissage des assemblages .NET: https://github.com/fod/fody


1 commentaires

Fody utilise mono.cecil mentionné dans un autre commentaire.