Maison > développement back-end > C++ > Comment puis-je obtenir des références de classe C# à partir de chaînes à l'aide de Reflection ?

Comment puis-je obtenir des références de classe C# à partir de chaînes à l'aide de Reflection ?

Linda Hamilton
Libérer: 2025-01-14 10:24:43
original
252 Les gens l'ont consulté

How Can I Get C# Class References from Strings Using Reflection?

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal