How to check whether an object has certain method/property?

Louis Rhys picture Louis Rhys · Feb 25, 2011 · Viewed 152.1k times · Source

Using dynamic pattern perhaps? You can call any method/property using the dynamic keyword, right? How to check whether the method exist before calling myDynamicObject.DoStuff(), for example?

Answer

Julien picture Julien · Feb 25, 2011

You could write something like that :

public static bool HasMethod(this object objectToCheck, string methodName)
{
    var type = objectToCheck.GetType();
    return type.GetMethod(methodName) != null;
} 

Edit : you can even do an extension method and use it like this

myObject.HasMethod("SomeMethod");