Heim >Backend-Entwicklung >C++ >Wie kann ich in C# Reflection einen Eigenschaftsnamen als Zeichenfolge abrufen?

Wie kann ich in C# Reflection einen Eigenschaftsnamen als Zeichenfolge abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-12 10:23:44834Durchsuche

How Can I Get a Property Name as a String in C# Reflection?

Verwenden Sie C#-Reflexion, um die Attributnamenzeichenfolge zu erhalten

Bei der Verwendung von Reflection ist es häufig erforderlich, den Eigenschaftsnamen als Zeichenfolge abzurufen. Dies ist insbesondere dann erforderlich, wenn sich Eigenschaftsnamen während des Refactorings ändern können oder wenn über generische Schnittstellen remote auf Eigenschaften zugegriffen wird.

Die traditionelle Methode besteht darin, den Attributnamen manuell als dritten Parameter von Methoden wie ExposeProperty() anzugeben. Dieser Ansatz ist jedoch fehleranfällig und erfordert eine ständige Aktualisierung, wenn sich der Eigenschaftsname ändert.

C# 6.0-Lösung: Name des Ausdrucks

C# 6.0 bietet eine integrierte Lösung: nameof Ausdrücke. Mit diesem Ausdruck können Sie den Eigenschaftsnamen zur Kompilierungszeit direkt als Zeichenfolge abrufen.

<code class="language-csharp">string name = nameof(SomeClass.SomeProperty);</code>

Der obige Ausdruck gibt die Zeichenfolge „SomeProperty“ zurück, auch wenn die Eigenschaft später umbenannt wird.

Vereinfachter Reflexionscode

Mit dem Ausdruck nameof können wir die Methode ExposeProperty() vereinfachen und die manuelle Angabe des Eigenschaftsnamens überflüssig machen:

<code class="language-csharp">public void ExposeProperty(string secretName, Type classType, string propertyName)
{
    // 使用反射获取属性信息
    PropertyInfo propertyInfo = classType.GetProperty(propertyName);

    // 使用反射公开属性
    RemoteMgr.ExposeProperty(secretName, classType, propertyInfo);
}</code>

Diese Methode stellt sicher, dass die für den Fernzugriff verwendeten Eigenschaftsnamen immer aktuell sind, unabhängig von Änderungen, die während des Refactorings vorgenommen werden.

Durch die Nutzung von nameof-Ausdrücken können Entwickler die Wartbarkeit und Robustheit ihres Codes verbessern, indem sie Eigenschaftsnamen dynamisch als Zeichenfolgen abrufen, potenzielle Fehler beseitigen und sicherstellen, dass reflektierende Vorgänge auch nach Codeänderungen korrekt bleiben.

Das obige ist der detaillierte Inhalt vonWie kann ich in C# Reflection einen Eigenschaftsnamen als Zeichenfolge abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn