Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1551 | Anzahl registrierter User: 1841 | Besucher online: 93
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Generische Extension zum Auslesen eines Klassen-Attributes


Autor: Marcell Spies
Sprache: C#
Bewertung:
1.44 (2 votes)
Anzahl der Aufrufe: 6515
  
Kick it on dotnet-kicks.de  

Beschreibung:

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.

Abgelegt unter: generic, reflection, attribute, attributes, generisch.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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;
        }
    }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Jorgen Schumann schrieb am:  16.04.2009 21:06:47

Extensions sind einfach genial. Super Snippet.


Diese Snippets könnten für Sie interessant sein:
[C#] Generische Between Methode
[C#] Generische Liste per Reflection erzeugen
[C#] Filtern mit dem Blacklist - Whitelist Verfahren
[C#] Generische Klasse die Objekte für eine ComboBox kapselt
[C#] generische zip funktion
[C#] Generisch XML De-/ Serialisieren
[C#] Eine allgemeine Liste (IEnumerable) in ein Array umwandeln
[C#] Singleton Basisklasse (thread-safe, generic, Lazy Creation)
[C#] Add Key-Value return old Value
[C#] Generische Event Args -> EventArgs
[C#] WatchedList
[C#] Liefert alle Assemblies aus dem Global Assembly Cache (GAC)
[C#] Kompilierung zur Laufzeit
[C#] XML-Programmkonfiguration / -Steuerung
[C#] Versionsnummer der Assembly ermitteln
[VB.NET] Funktion an Hand des Names ausführen
[C#] Ruft eine Methode in einer externen DLL anhand der Namen auf
[C#] Transactionen mit mehreren TableAdaptern
[C#] Reflektion und Generika
[C#] Dateiname des aktuellen Programms ermitteln
[C#] Generic Type Creator
[C#] Aktuelle Methode mit StackTrace ermitteln
[C#] Debugger Attribute
[C#] DescriptionAttribute von vorhandener Klasse übernehmen
[C#] Attribute zur Laufzeit abfragen
[C#] HashableElement
[ASP.net] Einem Iframe eine neue Quelle zuweisen
[ASP.net] Browserweiche für ASP.NET OnPreRender
[C#] Controls gleichen Typs von einem Container in Winform holen
[C#] Threadsicheres Zuweisen von Control-Eigenschaften
[C#] Selektieren eines gekapselten Eintrags aus der ComboBox
[C#] Array zur Laufzeit erweitern

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.