This is the functional equivalent of a "type is anothertype" but for interfaces:
public static bool TypeImplementsInterface(Type type, Type interfaceType)
{
string interfaceFullName = interfaceType.FullName;
return type.GetInterface(interfaceFullName) != null;
}