使用expando在编译时错误

时间:2014-09-10 01:20:42

标签: c#-4.0 dynamic reflection expandoobject

我有以下代码,就像一个Expando的小样本

使用System;     使用System.Collections.Generic;     使用System.Dynamic;

namespace IssueCatalogExample
{
    class IssueCatalogUsingExpando
    {
         dynamic _expando = new ExpandoObject();
        _expando.something = new ExpandoObject();
    }
}

出于某种原因,当我说动态_expando = new ExpandoObject();时,一切都很好。但当它进入下一行代码时,我说_expando.something它说“无法解析符号expando”。我不知道为什么会这样。我几乎记得我以前的经验,它动态地创建该成员,并且没有编译时错误,但这似乎不是这种情况。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

只能在类级别进行声明。您正在尝试执行属性分配:

_expando.something = new ExpandoObject();

只能在方法体内发生。例如,您可以将它放在构造函数中:

class IssueCatalogUsingExpando
{         
    dynamic _expando = new ExpandoObject();

    public IssueCatalogUsingExpando() 
    {
         _expando.something = new ExpandoObject();
         ...
    }
}