Utiliser Reflection pour accéder aux classes C# par nom
La réflexion C# fournit le mécanisme permettant d'accéder aux classes en utilisant leurs noms de chaîne. Ceci est crucial pour interagir dynamiquement avec les classes sans avoir besoin de références directes. Le cœur de ce processus réside dans l'obtention d'une référence de classe pour appeler ensuite ses méthodes.
La méthode Type.GetType()
est la clé. Il prend une chaîne (le nom de la classe) et renvoie un objet Type
représentant cette classe. Par exemple, pour obtenir une référence à une classe nommée "FooClass":
<code class="language-csharp">Type t = Type.GetType("FooClass");</code>
Avec l'objet Type
, vous pouvez ensuite invoquer des méthodes statiques en utilisant GetMethod()
et Invoke()
. Exemple illustratif :
<code class="language-csharp">MethodInfo method = t.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public); method.Invoke(null, null);</code>
BindingFlags.Static
indique que la méthode est statique ; BindingFlags.Public
précise qu'il est accessible au public.
Cette approche fonctionne en supposant que la classe réside au sein de l'assemblée actuelle. Des scénarios plus complexes, tels que l'accès à des classes à partir d'assemblys externes ou de différentes sources, nécessitent une approche plus sophistiquée, comme détaillé dans les solutions alternatives.
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!