Ich habe keine Ahnung, wofür diese sind. Die documentation ist nicht ganz klar:Was sind GetField, SetField, GetProperty und SetProperty in der Enumeration von BindingFlags?
GetField Gibt an, dass der Wert des angegebenen Feldes zurückgegeben werden soll.
SetField Gibt an, dass der Wert des angegebenen Felds festgelegt werden soll.
GetProperty Gibt an, dass der Wert der angegebenen Eigenschaft zurückgegeben werden soll.
SetProperty Gibt an, dass der Wert der angegebenen Eigenschaft festgelegt werden soll. Bei COM-Eigenschaften entspricht das Angeben dieses Bindungsflags dem Angeben von PutDispProperty und PutRefDispProperty.
Wenn ich sie in BindingFlags
Enumeration angeben, was sollten sie zurückgeben? Ich dachte, es hat mit Eigenschaften und Feldern eines Typs zu tun, aber dieser einfache Test sagt nein:
class Base
{
int i;
int I { get; set; }
void Do()
{
}
}
print typeof(Base).GetMembers(BindingFlags.GetField
| BindingFlags.Instance
| BindingFlags.NonPublic);
// Int32 get_I()
// Void set_I(Int32)
// Void Do()
// Void Finalize()
// System.Object MemberwiseClone()
// Int32 I
// Int32 i
// Int32 <I>k__BackingField
Der gleiche Satz für SetField
, GetProperty
und SetProperty
zurückgegeben.
Oh ich sehe; verwirrend, um den gleichen Satz von Flags in GetMembers zu sehen .. – nawfal
Zustimmen, könnte etwas verwirrend sein. –