我正在尝试解析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'(您是否缺少程序集引用?)
这怎么可能?
答案 0 :(得分:16)
LogicalBinaryExpression
是internal
,所以:
Type
比较困难,不能简单地使用typeof(LogicalBinaryExpression)
或x is LogicalBinaryExpression
。您应该检查BinaryExpression
,或查看表达式的NodeType
。
同样适用于MethodBinaryExpression
。