Heim >Backend-Entwicklung >C++ >Wie kann ich in C# Reflection einen Eigenschaftsnamen als Zeichenfolge abrufen?
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!