Nehmen wir an, wir haben eine Eigenschaft wie folgt
%Vor% Wie kann ich den Wert der obigen Variablen propName
als Eigenschaftsnamen festlegen, indem ich die Assembly-Informationen selbst lese?
Bearbeiten
Warum brauchen wir das?
Ich verwende den WPF d:DataContext
wie in hier , die mir helfen, einen 'Design-Modus' Wert für gebundene Eigenschaften anzuzeigen - sehr oft werden die gebundenen Werte als leere Zeichenfolge im Design angezeigt Modus. Und in der Datenkontextklasse 'Entwurfsmodus' möchte ich den Eigenschaftsnamen für jede mögliche Bindungseigenschaft zurückgeben.
Ich hoffe, dies würde Ihre Bedenken erklären.
Es gibt keine zuverlässige Möglichkeit, dies zur Laufzeit zu tun, aber Sie können MethodBase.GetCurrentMethod().Name
und wirf die ersten vier Charaktere weg.
Dieser Ansatz weist einige Fehler auf: Das Ausführen der Binärdatei durch ein Verschleierungstool kann dazu führen, dass die Methode umbenannt wird. Darüber hinaus kann die Methode inline sein und Probleme verursachen (wenn Sie Remove
nur für die Zeichenfolge verwenden, ohne die Länge zu überprüfen, kann dies sogar zu unerwarteten Abstürzen im Build von Release führen, die im Debug-Modus möglicherweise schwer zu reproduzieren sind).
Wenn Ihr Code einem Muster folgt und Sie eine Reihe von Eigenschaften wie diese erzeugen müssen, ist es besser, einen Kompilierungszeitansatz wie einen Code-Generator oder ein Aspekt-orientiertes Programmier-Framework zu verwenden.
Dies sollte auch funktionieren, aber ich bin mir nicht sicher, warum Sie dies benötigen
%Vor%Tags und Links c# properties