【问题标题】:using expando is erroring out on compile time使用 expando 在编译时出错
【发布时间】:2014-11-03 13:00:25
【问题描述】:

我有以下代码作为 Expando 的一个小示例

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

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

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

【问题讨论】:

    标签: c#-4.0 dynamic reflection expandoobject


    【解决方案1】:

    只有声明可以出现在类级别。您正在尝试进行属性分配:

    _expando.something = new ExpandoObject();
    

    只能出现在方法体内。例如,你可以把它放在构造函数中:

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

    【讨论】:

      猜你喜欢
      • 2017-11-22
      • 2016-10-27
      • 2016-05-28
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      相关资源
      最近更新 更多