Meine Frage befasst sich mit der Überprüfung der geerbten Eigenschaften von Eigenschaften.Attribut.IsDefined vs MemberInfo.IsDefined - Unterschied des geerbten Parameters
in this Question beschrieben wie die Methoden Attribute.IsDefined(MemberInfo, Type, Boolean)(1) undMemberInfo.IsDefined(Type, Boolean)(2) sind grundsätzlich die gleichen. Beide prüfen, ob ein Attribut verwendet wird. Aber es gibt einen gravierenden Unterschied beim Vererben Parameter, wenn ich eine Immobilie überprüfen möge:
(1):
Wenn dies zutrifft, gibt auch für benutzerdefinierte Attribute der Vorfahren des Elements zu suchen.
(2):
wahr Mitgliedervererbungskette zu suchen, um die Attribute zu finden; sonst falsch. Dieser Parameter wird für Eigenschaften und Ereignisse ignoriert; Siehe Bemerkungen.
(Die Ausführungen nur die Verwendung von (1) empfehlen)
Es ist kein Problem zu verwenden (1) eine ererbte Attribut einer Eigenschaft zu erhalten. Aber meine Frage ist die warum: Warum ist diese Funktion wie folgt implementiert? Was ist der Grund, die Nutzung oder der Nutzen? Von meinem Punkt gibt es eine Methode, die einen Parameter ignoriert und das ist nicht wirklich eine saubere Lösung.
Habe ich etwas übersehen?