Can';无法理解在.net4中将dynamic与泛型集合一起使用时出现的异常

Can';无法理解在.net4中将dynamic与泛型集合一起使用时出现的异常,dynamic,.net-4.0,generic-collections,Dynamic,.net 4.0,Generic Collections,请检查以下代码: static void Main(string[] args) { IList<dynamic> items = new List<dynamic>(); items.Add(3); items.Add("solid"); dynamic i = new ExpandoObject(); items.Add(i); //System.Collections.Generic.IList<object>'

请检查以下代码:

static void Main(string[] args) {
    IList<dynamic> items = new List<dynamic>();
    items.Add(3);
    items.Add("solid");
    dynamic i = new ExpandoObject();
    items.Add(i); //System.Collections.Generic.IList<object>' does not contain a definition for 'Add'
    Console.WriteLine();
}
static void Main(字符串[]args){
IList items=新列表();
增加(3)项;
项目。添加(“实体”);
动态i=新的ExpandoObject();
items.Add(i);//System.Collections.Generic.IList'不包含'Add'的定义
Console.WriteLine();
}
这是“动态”机制中的一个bug吗?

看起来像一个bug(或者是一个功能请求):


这应该可以做到:

static void Main(string[] args) {
    IList<dynamic> items = new List<dynamic>();
    items.Add(3);
    items.Add("solid");
    dynamic i = new ExpandoObject();
    items.Add((object) i); // type-cast dynamic object
    Console.WriteLine();
}
static void Main(字符串[]args){
IList items=新列表();
增加(3)项;
项目。添加(“实体”);
动态i=新的ExpandoObject();
items.Add((object)i);//类型cast dynamic object
Console.WriteLine();
}

+1希望我能更多地了解动态绑定的复杂性。我刚刚试过这个,结果显示
items.Add(newexpandoobject())可以,但是
项。添加((动态)新的ExpandooObject())不是。Thx,技巧工作得很好,但我喜欢简单明了,而不是代码中的技巧:)