Ist die Methodenbenennung für Property Getter / Setter in IL standardisiert?

8

Ich habe die folgenden zwei Methoden, die ich mich wundere, wenn sie angemessen sind:

%Vor%

Während dieser Code funktioniert, hoffe ich, den Teil zu vermeiden, der StartsWith überprüft und programmatisch die Namenskonvention erhält. Gibt es überhaupt .NET 4.5-Klassen, die sehen können, ob die MethodInfo eine Eigenschaft Getter / Setter ist?

    
m-y 23.05.2013, 16:05
quelle

2 Antworten

13

Eine Eigenschaftsmethode hat im Vergleich zu einer normalen Methode drei zusätzliche Merkmale:

  1. Sie beginnen immer mit get_ oder set_ , während eine normale Methode mit diesen Präfixen beginnen kann.
  2. Die Eigenschaft MethodInfo.IsSpecialName ist auf true gesetzt.
  3. Die MethodInfo hat ein benutzerdefiniertes Attribut System.Runtime.CompilerServices.CompilerGeneratedAttribute .

Sie könnten bei 1, kombiniert mit Option 2 oder 3, nachsehen. Da die Präfixe ein Standard sind, sollten Sie sich nicht wirklich darum kümmern, sie zu überprüfen.

Die andere Methode besteht darin, alle Eigenschaften aufzulisten und den Methoden zu entsprechen, die viel langsamer sind:

%Vor%     
Martin Mulder 23.05.2013, 16:25
quelle
1

Sie könnten Folgendes versuchen:

%Vor%

Sie können optional die Bindungsflags für GetProperties

angeben     
vc 74 23.05.2013 16:12
quelle