C # Attribute.isDefined () пример? - PullRequest
10 голосов
/ 11 июня 2010

Может кто-нибудь дать мне пример использования Attribute.isDefined (), чтобы проверить, был ли применен определенный пользовательский атрибут к данному классу? Я проверил msdn, но вижу только возможности для атрибутов, примененных к сборкам, элементам и т. Д. Я также открыт для альтернативных методов для достижения того же самого!

Ответы [ 3 ]

7 голосов
/ 12 июня 2010

Простой пример:

using System;
using System.Diagnostics;

[Foo]
class Program {
    static void Main(string[] args) {
        var ok = Attribute.IsDefined(typeof(Program), typeof(FooAttribute));
        Debug.Assert(ok);
    }
}

class FooAttribute : Attribute { }
2 голосов
/ 11 июня 2010

Кажется, что нет перегрузки Attribute.IsDefined, которая принимает Type.

Вместо Вы можете позвонить Type.GetCustomAttributes:

if (typeof(SomeClass).GetCustomAttributes(typeof(SomeAttribute), false).Length > 0)
1 голос
/ 12 июня 2010

Класс Type наследует MemberInfo.
Следовательно, вы можете использовать перегрузку , которая принимает MemberInfo:

if (Attribute.IsDefined(typeof(SomeClass), typeof(SomeAttribute))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...