Heim  >  Artikel  >  Backend-Entwicklung  >  Reflexion in C#

Reflexion in C#

WBOY
WBOYnach vorne
2023-08-26 13:45:021301Durchsuche

C# 中的反射

Reflection-Objekte werden verwendet, um Typinformationen zur Laufzeit abzurufen. Klassen, die den Zugriff auf die Metadaten eines laufenden Programms ermöglichen, befinden sich im System.Reflection-Namespace.

Das Folgende ist eine Anwendung von Reflections -

  • Sie ermöglicht die Anzeige von Attributinformationen zur Laufzeit.

  • Es ermöglicht die Prüfung verschiedener Typen in einer Baugruppe und die Instanziierung dieser Typen.

  • Es ermöglicht eine späte Bindung an Methoden und Eigenschaften.
  • Es ermöglicht das Erstellen neuer Typen zur Laufzeit und die anschließende Verwendung dieser Typen zum Ausführen einiger Aufgaben.

  • ul>

    Sehen wir uns ein Beispiel an –

    Beispiel

    using System;
    
    [AttributeUsage(AttributeTargets.All)]
    public class HelpAttribute : System.Attribute {
       public readonly string Url;
    
       public string Topic // Topic is a named parameter {
          get {
             return topic;
          }
          set {
             topic = value;
          }
       }
       public HelpAttribute(string url) // url is a positional parameter {
          this.Url = url;
       }
       private string topic;
    }
    
    [HelpAttribute("Information on the class MyClass")]
       class MyClass {
    }
    
    namespace AttributeAppl {
       class Program {
          static void Main(string[] args) {
             System.Reflection.MemberInfo info = typeof(MyClass);
             object[] attributes = info.GetCustomAttributes(true);
    
             for (int i = 0; i < attributes.Length; i++) {
                System.Console.WriteLine(attributes[i]);
             }
             Console.ReadKey();
          }
       }
    }

Das obige ist der detaillierte Inhalt vonReflexion in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen