Expression.PropertyOrField可以用来访问静态属性或字段吗?
Expression.PropertyOrField
的expression
参数的文档声明它对于静态成员可以为null
:
一个Expression,其
Type
包含名为propertyOrFieldName
的属性或字段。 静态成员可以为null
。
(强调我的)
但是,每当我传递null
我都会得到一个ArgumentNullException
。
这种方法的文档是矛盾的:
-
expression
参数的文档声明静态成员可以为null
-
ArgumentNullException
的文档声明,如果expression
为null
,则抛出它
事实是 :
此方法不能用于访问静态成员, expression
参数的文档不正确。
即使提供了具有正确Type
的表达式,此方法也无法按预期工作,因为它只查找实例成员。
要访问静态字段或属性,请改用Expression.MakeMemberAccess
。