Inspiriert von einer SO-Frage. Die Attributklasse hat mehrere Überladungen für die IsDefined () -Methode. Es werden Attribute behandelt, die auf Assembly, Module, MemberInfo, ParameterInfo angewendet werden. Die MemberInfo-Überladung umfasst PropertyInfo, FieldInfo, EventInfo, MethodInfo, ConstructorInfo.
Damit sind die meisten AttributeTargets erledigt. Abgesehen von einem großen Problem: Es gibt keine Überladung für Attribute.IsDefined (Typ, Typ), sodass Sie überprüfen können, ob ein Attribut für eine Klasse definiert ist. Oder eine Struktur, ein Delegat oder eine Aufzählung für diese Angelegenheit.
Nicht dass dies ein echtes Problem ist, Type.GetCustomAttributes () kann das beheben. Aber alle BlahInfo-Typen haben dies auch. Ich wundere mich über die mangelnde Symmetrie. Ich kann nicht sagen, warum dies für Type ein Problem wäre. Das Erraten eines Vererbungsproblems erklärt es mir nicht. ValueType in der Mischung zu haben, könnte ein Hinweis sein, macht aber immer noch keinen Sinn. Ich kaufe nicht "sie haben es vergessen", sie tun es nie.
Warum fehlt diese Überlastung?
quelle
ICustomAttributeProvider
würde auch sehr viel Sinn machen.