Maison >développement back-end >C++ >Comment puis-je accéder aux méthodes privées en utilisant la réflexion en C #?
Exploiter Reflection pour appeler des méthodes C# privées
Reflection en C# offre la possibilité d'accéder et d'invoquer des méthodes de classe privée, une fonctionnalité généralement limitée au code externe. Cela peut être avantageux dans les situations nécessitant des appels de méthodes dynamiques, en fonction des données d'exécution.
Votre extrait de code utilise GetMethod()
pour localiser une méthode par son nom. Cependant, GetMethod()
exclut par défaut les membres privés. Pour inclure des méthodes privées, vous devez incorporer un BindingFlags
spécifique lors de l'appel de GetMethod()
:
<code class="language-csharp">MethodInfo dynMethod = this.GetType().GetMethod("Draw_" + itemType, BindingFlags.NonPublic | BindingFlags.Instance); dynMethod.Invoke(this, new object[] { methodParams });</code>
BindingFlags.NonPublic
garantit l'inclusion de méthodes non publiques (privées) dans la recherche, tandis que BindingFlags.Instance
restreint la recherche aux méthodes d'instance. Cette combinaison garantit que GetMethod()
identifie correctement la méthode privée souhaitée dans l'instance de classe actuelle.
Pour des informations détaillées sur la personnalisation de votre recherche de méthode, consultez la documentation C# sur l'énumération BindingFlags
. Cette documentation répertorie de manière exhaustive tous les indicateurs disponibles pour affiner les recherches sur les méthodes, les champs et les autres membres de la classe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!