Измените тест следующим образом:
if(expression is BinaryExpression)
{
//DO something
}
Даже если MethodBinaryExpression наследует от BinaryExpression, они все равно являются разными типами.Вы можете попробовать несколько примеров, чтобы увидеть, как сравниваются объекты Type:
// Prints "False"
Console.WriteLine(typeof(MethodBinaryExpression) == typeof(BinaryExpression));
// Prints "True"
Console.WriteLine(typeof(BinaryExpression) == typeof(BinaryExpression));