System.Linq.Expressions.LogicalBinaryExpression类有什么问题?

时间:2012-02-11 15:58:37

标签: .net expression-trees

我正在尝试解析Expression,在某些时候我必须解析类型为System.Linq.Expressions.LogicalBinaryExpression的表达式。我从调试手表中获取此类名。 expression.GetType().ToString()等于"System.Linq.Expressions.LogicalBinaryExpression"。但是我无法在System.Linq.Expressions命名空间中看到这个类。无处可去。与MethodBinaryExpression类相同的事情。

为了检查类型我真的更喜欢写

  • expression is LogicalBinaryExpression
  • expression.GetType() = typeof(LogicalBinaryExpression )但绝对不是
  • expression.GetType().ToString() == "System.Linq.Expressions.LogicalBinaryExpression"

所以现在我只是有错误

  

名称空间'System.Linq.Expressions'中不存在类型或命名空间名称'LogicalBinaryExpression'(您是否缺少程序集引用?)

这怎么可能?

1 个答案:

答案 0 :(得分:16)

LogicalBinaryExpressioninternal,所以:

  1. 获取Type比较困难,不能简单地使用typeof(LogicalBinaryExpression)x is LogicalBinaryExpression
  2. 您将找不到任何有关它的文档。
  3. 你根本不应该使用它。这是一个可以随时更改的实现细节。
  4. 您应该检查BinaryExpression,或查看表达式的NodeType

    同样适用于MethodBinaryExpression