代码之家  ›  专栏  ›  技术社区  ›  Will Marcouiller

是否可以将属性限制为类或属性?

  •  8
  • Will Marcouiller  · 技术社区  · 14 年前

    我有两个自定义属性定义如下:

    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限制为属性。

    这可行吗?

    2 回复  |  直到 6 年前
        1
  •  13
  •   Justin Niessner    6 年前

    退房 AttributeUsage AttributeTargets .

    它看起来像:

    [AttributeUsage(AttributeTargets.Class)]
    internal class SchemaAttribute : Attribute
    {
        // Implementation
    }
    
    [AttributeUsage(AttributeTargets.Property)]
    internal class AttributeAttribute : Attribute
    {
        // Implementation
    }
    
        2
  •  4
  •   Phil Lamb    14 年前

    AttributeTargetAttribute

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