Ich versuche, alle benutzerdefinierten Attribute zu sammeln, die über eine Eigenschaft platziert wurden. Der Eigenschaft sind mehrere Attribute desselben Typs zugewiesen, aber wenn ich sie sammle, enthält die resultierende Sammlung nur das erste Attribut des spezifischen Typs:
Die Klasse Attribut
[AttributeUsage(System.AttributeTargets.Property,
AllowMultiple = true)]
public class ConditionAttribute : Attribute{...}
Verwendung:
[ConditionAttribute("Test1")]
[ConditionAttribute("Test2")]
[ConditionAttribute("Test3")]
public Color BackColor{get; set;}
Wenn Sie nun eine Schleife durch alle Requisiten des Objekts "value" ziehen, dessen Klasse die Requisite "BackColor" enthält:
foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(value))
{
foreach (Attribute attribute in property.Attributes)
{ ... }
....
}
die Sammlung Eigenschaft.Attribute enthält nur EIN Attribut vom Typ "ConditionAttribute": das mit "Test1". Die anderen werden ignoriert;-(
Funktioniert AllowMultiple also nicht für Eigenschaftsattribute?
Vielen Dank im Voraus
henrik