找不到ExpandoObject属性
本文关键字:属性 ExpandoObject 找不到 | 更新日期: 2023-09-27 18:24:44
以下是ViewModel属性定义。
private List<ExpandoObject> productList;
public List<ExpandoObject> Products {
get {
return productList;
}
set {
productList = value;
}
}
在selectedProductExpandoObject上,我有一个名为lineNum的属性,它是按照ExpandoObjects:的标准方式设置的
product.lineNum = some_integer;
现在,在驻留在另一个对象中的方法中,我有了这个。object_passed_in被声明为object,productList的一个成员被传递到其中
var selectedProduct = object_passed_in as ExpandoObject
// I have tried this as "dynamic", too
当我设置一个断点并监视"selectedProduct.lineNum"时,该监视工作得很好——它显示了正确的值。然而
if (selectedProduct.lineNum == some_comparison_value) {
// some lines of code
}
抛出一个错误-第一次机会异常,告诉我lineNum不是在ExpandoObject selectedProduct上找到的属性。
我可以通过将ExpandoObject强制转换为IDictionary<字符串,对象>类型,然后以这种方式访问属性:
int passed_in_lineNum = (int)selectedProduct["lineNum"];
但这完全违背了使用ExpandoObject的目的!
什么。我在做。错误的在这里
是否在"工具"->"选项"->"调试"->"常规"下取消选中"仅启用我的代码"?由于这是一个第一次机会出现的异常,DLR很有可能抛出并捕获它(我可以在未选中"Enable Just My Code"的情况下复制它)。尝试忽略异常或检查"仅启用我的代码",看看它是否有效。