2010-05-21 75 views
6

我有一个像这样定义了两个自定义属性:将属性限制为类或属性可行吗?

internal class SchemaAttribute : Attribute { 
    internal SchemaAttribute(string schema) { 
     Schema = schema; 
    } 

    internal string Schema { get; private set; } 
} 

internal class AttributeAttribute : Attribute { 
    internal AttributeAttribute(string attribute) { 
     Attribute = attribute; 
    } 

    internal string Attribute { get; private set; } 
} 

我想给SchemaAttribute限制类和AttributeAttribute到属性。

这是可行的吗?

+0

如果你发现我的问题,如果不够好,帮助别人,请给予好评。谢谢! =) – 2010-05-21 18:25:26

回答

10

结账AttributeUsageAttributeTargets

它会看起来像:

[AttributeUsage(AttributeTargets.Class)] 
internal class SchemaAttribute : Attribute 
{ 
    // Implementation 
} 

[AttributeUsage(AttributeTarget.Property)] 
internal class AttributeAttribute : Attribute 
{ 
    // Implementation 
} 
+1

+1 - 比我的好多了。 – 2010-05-21 18:08:07

4

AttributeTargetAttribute

[AttributeTarget(AttributeTargets.Class)] 
internal class SchemaAttribute : Attribute 
... 

[AttributeTarget(AttributeTargets.Property)] 
internal class AttributeAttribute: Attribute 
... 
+0

+1感谢您的回答! =) – 2010-05-21 18:24:41