Expression.PropertyOrField可以用来访问静态属性或字段吗?

Dan*_*rth 3 .net c# expression

它可以用于静态成员expressionExpression.PropertyOrField状态参数的文档null:

Type包含名为的属性或字段的表达式propertyOrFieldName.这可以null用于静态成员.
(强调我的)

但是,每当我通过时,null我都会得到一个ArgumentNullException.

Dan*_*rth 6

这种方法的文档是矛盾的:

  • expression参数的文档说明它可以null用于静态成员
  • ArgumentNullException如果expression是,则抛出的状态的文档null

事实是:
此方法不能用于访问静态成员,expression参数的文档不正确.
即使提供了具有正确的表达式Type,此方法也无法按预期工作,因为它只查找实例成员.

要访问静态字段或属性,请Expression.MakeMemberAccess改用.