2015-11-05 1 views
1

Je suis intéressé à trouver tous les endroits dans ma solution où la boxe ou le déballage se produisent. Je sais que je peux utiliser ildasm comme ceci:Comment détecter la boxe/unboxing dans le code

Ildasm.exe yourcomponent.dll /text | findstr box 

mais je préfère ne pas regarder le niveau MSIL. Existe-t-il un moyen facile de faire cela?

+0

Vous pouvez probablement utiliser Roslyn pour cette ... avez-vous regardé dans cela? –

+2

Je pense que ce serait beaucoup de travail pour analyser l'arbre de syntaxe dans Roslyn pour comprendre cela. Vous pourriez le faire, mais honnêtement, il est le moyen le moins cher. Êtes-vous préoccupé par la boxe pour des raisons de performance ou êtes-vous simplement curieux? –

+0

@MichaelBraude, principalement la curiosité. Je voulais juste générer un rapport pour mon équipe sur tous les lieux – Tsahi

Répondre

0

Ceci est un cas parfait d'utilisation de #Roslyn Le compilateur en tant que service qui sort de Skeet Microsoft et Jon comme d'habitude est absolument juste. J'écris un livre sur Roslyn pour montrer comment faire ce genre d'analyse de code en utilisant Roslyn et le couronner avec une visualisation accrocheur par JavaScript.

Voici le code pour trouver des appels de boxe. Cependant, la résolution de la portée joue un rôle. Mais cet exemple devrait vous aider à démarrer. Pré-commander votre exemplaire pour obtenir plus comme à https://www.amazon.com/Source-Analytics-Roslyn-JavaScript-Visualization/dp/1484219244?ie=UTF8&Version = 1 & entrées = 0

https://gist.github.com/sudipto80/43efdecb878cac17b340cda2c281c3b3