private bool CheckInheretenceHierarchy(Type type, Type requiredBase) { if (type == null) { return false; } if (type == requiredBase || type.BaseType == requiredBase) { return true; } return CheckInheretenceHierarchy(type.BaseType, requiredBase); } }