Vous avez raison de dire que le fait que quelque chose soit déclaré comme une propriété n'affecte pas l'exécution du programme. Comme le livre Inside Microsoft .NET IL Assembler déclare dans son introduction au chapitre concernant les propriétés, le compilateur JIT et le moteur d'exécution ne sont pas du tout conscients des propriétés, et aucune instruction IL ne fait référence au concept de propriété.
Notez que Visual Studio n'est pas le seul consommateur de métadonnées. Si vous déposez .property
et réassemblez, vous aurez les méthodes getter et setter, mais ce n'est évidemment plus une propriété. L'exemple le plus évident d'où cela devient un problème: que se passe-t-il si une instance d'un objet est transmise à une autre méthode qui utilise la réflexion pour invoquer chaque propriété de la classe? Les propriétés ne seraient pas trouvées et le comportement au moment de l'exécution a changé en raison de la méthode d'obfuscation proposée.
Bien sûr, des scénarios tels que la réflexion et la sérialisation sont des outils courants d'obfuscation, comme nous l'avons vu dans votre question précédente. Donc, ce que je dis est, c'est problématique, mais sa problématique dans un ensemble de scénarios similaires à ceux décrits dans votre autre thread - en particulier les scénarios où les métadonnées sont consommées ou la sérialisation est en cours d'exécution.
La dernière édition du livre que j'ai mentionné ci-dessus a un nom différent: Expert .NET 2.0 IL Assembler; ce peut être une référence utile pour vous. Compiling for the .NET Common Language Runtime peut également être utile.
Alors, des questions stupides: avez-vous essayé de le supprimer pour voir quel effet il a? Quelles recherches avez-vous faites sur ILAsm et .property pour voir s'il sert à quoi que ce soit? – jcolebrand
Peut-être que je pourrais essayer de le faire et peut-être qu'il semblerait être OK et peut-être plus tard, il deviendrait évident que ce n'était pas une bonne idée après tout. Alors peut-être qu'une chose intelligente à faire est de demander aux gens qui ont plus de connaissances que moi de donner des conseils. – RenniePet
très vrai, très vrai en effet. J'étais juste curieux de savoir si vous en aviez déjà rencontré. – jcolebrand