Voici l'affaire. J'ai un programme qui va charger un assembly donné, analyser tous les types et leurs membres et compiler un TreeView (très similaire à l'ancien site MSDN), puis construire des pages HTML pour chaque nœud dans le TreeView. Il prend essentiellement un assembly donné et permet à l'utilisateur de créer sa propre bibliothèque de type MSDN à des fins de documentation.Surcharge et réflexion de l'opérateur en C#
Voici le problème que j'ai rencontré: lorsqu'une surcharge d'opérateur est enchaînée dans une classe définie, la réflexion renvoie celle-ci en tant que "MethodInfo" avec le nom défini sur quelque chose comme "op_Assign" ou "op_Equality". Je veux être capable de les capturer et de les répertorier correctement, mais je ne trouve rien dans l'objet MethodInfo retourné pour identifier précisément que je regarde un opérateur. Je ne veux définitivement pas capturer tout ce qui commence par "op_", car cela va sûrement (à un certain point) ramasser une méthode à laquelle il n'est pas supposé. Je sais que d'autres méthodes et propriétés qui sont des "cas spéciaux" comme celui-ci ont la propriété "IsSpecialName" définie, mais apparemment ce n'est pas le cas avec les opérateurs. J'ai fait du récurage sur le net et j'ai creusé mon cerveau à deux jours en essayant de comprendre celui-ci, donc toute aide sera grandement appréciée.
Le projet NRefactory est pertinent ici. Il a des méthodes d'analyse pour aider avec cela. https://github.com/icsharpcode/NRefactory/blob/master/ICSharpCode.NRefactory.CSharp/Parser/mcs/method.cs – yoyo