0 Tage Serie
csharp / expert
Snippet

Dynamische Attribut-basierte Methodensuche

Dies ist ein Kernmuster für den Bau von Frameworks. Durch die Verwendung von Reflection zur Suche nach benutzerdefinierten Attributen können Plugin-Systeme oder automatisierte Test-Runner implementiert werden, die Logik dynamisch zur Laufzeit entdecken und ausführen.

snippet.cs
csharp
1
2
3
4
5
6
7
8
9
10
public void RunPlugins(object instance)
{
var methods = instance.GetType().GetMethods()
.Where(m => m.GetCustomAttributes(typeof(PluginEntryPointAttribute), false).Any());
foreach (var method in methods)
{
method.Invoke(instance, null);
}
}
Erklärung
1
GetCustomAttributes(...)
Ruft Metadaten-Markierungen ab, die auf Methoden angewendet wurden, um spezifisches Verhalten zu identifizieren.
2
method.Invoke(instance, null)
Führt die entdeckte Methode dynamisch aus, unabhängig von ihrem Namen oder hartcodierten Referenzen.