将CustomAttribute添加到类并将其传播到其属性

时间:2018-09-27 13:46:27

标签: c# reflection

我试图用类级别定义一个CustomAttribute,我希望将此属性传播到该类的所有属性。

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)]
public class MyCustomAttribute : Attribute
{
}

[MyCustom]
public class MyClass
{
    public int A { get; set; }
    public int B { get; set; }
    public int C { get; set; }
}

我希望属性A,B和C也已分配MyCustomAttribute。我知道我可以为每个属性定义属性。但是我想在类级别定义Attribute。

有可能吗?

1 个答案:

答案 0 :(得分:0)

这是不可能的,但是取决于您使用custom属性的方式,您可以让它检查定义属性的类,即I.E。

public static bool IsDefinedOnPropertyOrClass(PropertyInfo info, Type attributeType)
{
  return info.IsDefined(attributeType) || info.DeclaringType.IsDefined(attributeType);
}