Feedback

C# - Generische Extension zum Auslesen eines Klassen-Attributes

Veröffentlicht von am 30.03.2009
(2 Bewertungen)
Erlaubt das Auslesen eines zugewiesenen Attributes einer Klasse. Die Extension erweitert den Typ object und ist somit für jeden Typ verfügbar. Als Parameter wird lediglich der Typ des Attributes angegeben, welcher dann generisch auch wiederum als Rückgabewert verwendet wird.
public static class ReflectionExtensions
    {
        public static T GetCustomAttribute<T>(this object objectItem) where T : Attribute
        {
            return GetCustomAttribute<T>(objectItem, false);
        }

        public static T GetCustomAttribute<T>(this object objectItem, bool inherit) where T : Attribute
        {
            T attribute = null;
            object[] attributes = objectItem.GetType().GetCustomAttributes(typeof(T), inherit);

            if (attributes.Length == 1)
            {
                attribute = (T)attributes[0];
            }

            return attribute;
        }
    }

1 Kommentare zum Snippet

Jorgen Schumann schrieb am 16.04.2009:
Extensions sind einfach genial. Super Snippet.
 

Logge dich ein, um hier zu kommentieren!