Wenn Sie finden können die Attribute haben Sie wohl die MethodInfo
der betreffenden Methode(n). Rufen Sie einfach die MethodInfo.Invoke
Methode müssen Sie die Instanz des Objekts angeben, das Sie verwenden möchten (oder null
wenn es sich um eine statische Methode handelt) und alle Parameter, die an die Methode übergeben werden sollen (in der gleichen Reihenfolge wie im Prototyp).
Zum Beispiel, wenn Sie eine Methode mit diesem Prototyp aufrufen müssen:
void Foo(string name, int value);
Und Sie haben eine Funktion, um diese Methode zu finden (indem Sie nach einem bestimmten Attribut suchen):
MethodInfo FindMethodWithAttribute(Type attributeType, Type objectType);
Sie können diese Methode (eines hypothetischen Objekts) finden und aufrufen anObject
) mit diesem Code:
MethodInfo method = FindMethodWithAttribute(
typeof(MyAttribute), // Type of the "marker" attribute
anObject.GetType()); // Type of the object may contain the method
method.Invoke(anObject, new object[] { "someText", 2 });