2013-07-17 59 views

回答

4

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

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

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

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

+0

然后是PropertyOrField和MakeMemberAccess之间的唯一区别,后者允许静态成员访问?顺便说一句,MakeMemberAccess的doc也是buggy - 它表示静态成员的表达式可以为null,异常部分表示如果expression为null,则会抛出ArgNullException ... – KFL

相关问题