我有两个问题。
首先,正如标题所说,有人知道如何实现AttributeUsageAtribute吗?它只能应用于从Attribute派生的类,如果不是,它将会出错: 属性“AttributeUsage”仅对从System.Attribute
派生的类有效其次,我可以编写一个类似的属性,可以应用于从特定类派生的类或实现特定的接口吗?
答案 0 :(得分:2)
1)这是特定于编译器的
2)你可以尝试以下技巧:
var attributes = typeof(A).GetCustomAttributes(A.GetDerivedFromAOnlyAttributeType(), false);
// using an attribute outside the A class
class A {
protected class DerivedFromAOnlyAttribute : Attribute { }
public static Type GetDerivedFromAOnlyAttributeType() {
return typeof(DerivedFromAOnlyAttribute);
}
}
[A.DerivedFromAOnly] //ok
class B : A {
}
[A.DerivedFromAOnly] //error
class C {
}