Ограничение атрибутов должно классифицировать или выполнимые свойства?

У меня есть два пользовательских атрибута, определенные как так:

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 к свойствам.

Действительно ли это выполнимо?

8
задан dtb 21 May 2010 в 18:08
поделиться

2 ответа

См. AttributeUsage и AttributeTargets .

Это будет примерно так:

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

[AttributeUsage(AttributeTargets.Property)]
internal class AttributeAttribute : Attribute
{
    // Implementation
}
14
ответ дан 5 December 2019 в 09:24
поделиться

Посмотрите на AttributeTargetAttribute

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

[AttributeTarget(AttributeTargets.Property)]
internal class AttributeAttribute: Attribute
...
4
ответ дан 5 December 2019 в 09:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: