Пример С# Attribute.isDefined()?

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

Я проверил msdn, но вижу только возможности для атрибутов, применяемых к сборкам, членам и т.д. Я также открыт для альтернативных методов для достижения того же!

Ответ 1

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

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

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

Вместо этого Вы можете вызвать Type.GetCustomAttributes:

if (typeof(SomeClass).GetCustomAttributes(typeof(SomeAttribute), false).Length > 0)