【发布时间】:2010-10-25 07:43:40
【问题描述】:
我想收集放置在属性上的所有自定义属性。有多个相同类型的Attributes分配给了Property,但是在收集它们时,得到的集合只包含特定类型的第一个Attribute:
属性类
[AttributeUsage(System.AttributeTargets.Property,
AllowMultiple = true)]
public class ConditionAttribute : Attribute{...}
用法:
[ConditionAttribute("Test1")]
[ConditionAttribute("Test2")]
[ConditionAttribute("Test3")]
public Color BackColor{get; set;}
现在循环遍历对象“value”的所有道具时,其类包含道具“BackColor”:
foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(value))
{
foreach (Attribute attribute in property.Attributes)
{ ... }
....
}
集合 property.Attributes 仅包含一个“ConditionAttribute”类型的属性:具有“Test1”的那个。其他的被忽略;-(
那么 AllowMultiple 对 Property Attributes 不起作用吗?
提前致谢
亨里克
【问题讨论】:
标签: attributes custom-attributes