gpt4 book ai didi

attributes - AllowMultiple不能与属性属性一起使用?

转载 作者:行者123 更新时间:2023-12-03 11:19:14 26 4
gpt4 key购买 nike

我想收集放置在属性上的所有自定义属性。给属性分配了多个相同类型的属性,但是在收集它们时,结果集合仅包含特定类型的第一个属性:

属性类

[AttributeUsage(System.AttributeTargets.Property,
AllowMultiple = true)]

public class ConditionAttribute : Attribute{...}

用法:
[ConditionAttribute("Test1")]
[ConditionAttribute("Test2")]
[ConditionAttribute("Test3")]
public Color BackColor{get; set;}

现在,当遍历对象“值”的所有属性时,该对象的“值”类包含属性“BackColor”:
foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(value))
{
foreach (Attribute attribute in property.Attributes)
{ ... }
....
}

属性仅包含类型为“ConditionAttribute”的ONE属性:具有“Test1”的属性。其他被忽略;-(

那么AllowMultiple不适用于属性属性吗?

提前致谢

亨里克

最佳答案

根据a post on MSDN的说法,这是设计作为PropertyDescriptor类的一部分。

但是,您实际上可以通过覆盖自定义属性中的TypeId来解决问题(感谢Ivan from Mindscape指出了这一点):

public override object TypeId
{
get
{
return this;
}
}

关于attributes - AllowMultiple不能与属性属性一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com