Accès dynamique aux classes en C# à l'aide de Reflection
Les développeurs C# rencontrent souvent des scénarios nécessitant un accès dynamique aux classes basé sur des représentations sous forme de chaîne. Cet article montre comment tirer parti de la réflexion pour récupérer les références de classe à partir de chaînes.
Imaginez que vous ayez une chaîne ("MyClass", par exemple) représentant un nom de classe et que vous deviez appeler une méthode au sein de cette classe. La réflexion fournit la solution.
La fonctionnalité principale repose sur la méthode Type.GetType
. Voici un exemple :
<code class="language-csharp">using System; using System.Reflection; public class Example { public static void Main(string[] args) { Type type = Type.GetType("MyClass"); // Get the Type object MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Public | BindingFlags.Static); // Get the method method.Invoke(null, null); // Invoke the method } } public class MyClass { public static void MyMethod() { Console.WriteLine("MyMethod called!"); } }</code>
Ce code utilise Type.GetType
pour obtenir un objet Type
à partir de la chaîne. GetMethod
récupère ensuite la méthode statique spécifiée et Invoke
l'exécute.
Notez que cet exemple utilise une méthode statique publique. Le réglage de BindingFlags
permet d'accéder à d'autres types de méthodes (par exemple, BindingFlags.Instance | BindingFlags.NonPublic
pour les méthodes d'instance privée).
La compréhension Type.GetType
et d'autres méthodes de réflexion débloque une interaction dynamique avec vos classes C#, offrant une flexibilité significative dans vos applications.
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!