C# Attribute.isDefined () пример?

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

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

10
задан UpTheCreek 11 June 2010 в 19:55
поделиться

3 ответа

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

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 { }
7
ответ дан 4 December 2019 в 01:29
поделиться

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

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

if (typeof(SomeClass).GetCustomAttributes(typeof(SomeAttribute), false).Length > 0)
2
ответ дан 4 December 2019 в 01:29
поделиться

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

if (Attribute.IsDefined(typeof(SomeClass), typeof(SomeAttribute))
1
ответ дан 4 December 2019 в 01:29
поделиться
Другие вопросы по тегам:

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