首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到ExpandoObject属性

找不到ExpandoObject属性
EN

Stack Overflow用户
提问于 2014-09-25 21:40:00
回答 1查看 1.1K关注 0票数 3

下面是一个ViewModel属性定义。

代码语言:javascript
复制
private List<ExpandoObject> productList;

public List<ExpandoObject> Products {
    get {

        return productList;
    }

    set {

        productList = value;

    }
}

在selectedProduct ExpandoObject上,我有一个名为lineNum的属性,它以ExpandoObjects的标准方式设置:

代码语言:javascript
复制
product.lineNum = some_integer;

现在,在驻留在另一个对象中的方法中,我得到了以下内容。object_passed_in被声明为对象,productList的一个成员被传递到对象中。

代码语言:javascript
复制
var selectedProduct = object_passed_in as ExpandoObject 
// I have tried this as "dynamic", too

当我设置一个断点并观看"selectedProduct.lineNum“时,手表工作正常-它显示了正确的值。然而..。

代码语言:javascript
复制
if (selectedProduct.lineNum == some_comparison_value) {

    // some lines of code
}

抛出一个错误--一个第一次机会异常,告诉我lineNum不是在ExpandoObject selectedProduct上找到的属性。

我可以通过将ExpandoObject转换为IDictionary<字符串( object > type ),然后以这种方式访问属性,从而击败提交它:

代码语言:javascript
复制
int passed_in_lineNum = (int)selectedProduct["lineNum"]; 

但这完全违背了使用ExpandoObject的目的!

什么。上午。一.做。不对。这里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-25 22:08:16

您是否在Tools -> Options -> Debugging -> General中未选中“只启用我的代码”?因为这是第一次机会异常,DLR抛出并捕获它的可能性很大(我能够在“只启用我的代码”不加检查的情况下复制这个异常)。尝试忽略异常或检查“只启用我的代码”,看看它是否有效。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26048590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档