4

expression参数的文档Expression.PropertyOrField说明它可以null用于静态成员:

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

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

4

1 回答 1

7

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

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

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

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

于 2013-07-17T12:59:25.917 回答