下面的代码在 .Net 3.5 上运行良好:
PropertyInfo propertyInfo = typeof(int?).GetProperty("Value");
int? i = 5;
object o = propertyInfo.GetValue(i, null);
运行后,o是 typeint并具有 value 5。这没关系。
当我在 .Net Compact Framework 3.5 上运行相同的代码时,我InvalidProgramException在最后一行得到一个。
- 为什么会这样?
- 我能做些什么吗?
- 这是 .Net CF 中的错误吗?
我目前正在做的是确定Type我正在处理的是否是 aSystem.Nullable<T>并且我得到的属性具有名称"Value",然后明确处理该情况。但我想知道是否有更简单的解决方案。
我正在编写的代码解析表达式树(我们使用System.Linq.Expressions在 .Net CF 上实现的单声道 dll)。当我使用反射来获取ConstantExpression表示可空常量的 a 的值时,就会出现问题。