1

我有以下类型的代码片段。

var PersonList = new List<person>() { 
                new person { Name = "b", Age = 4 },
                new person { Name = "s", Age = 2 },
                new person { Name = "e", Age = 5 },
                new person { Name = "a", Age = 1 },
            }.AsQueryable();

// Now somewhere in usercontrol I am converting that list to dynamic.
dynamic DynaList = PersonList;

// Now below line gives me error when I try to perform any on DynaList.
DynaList.ToList(); // Error - BinderException
DynaList.OrderBy("Name"); // Error - BinderException

为什么动态不转换为其类型运行时?

4

2 回答 2

2

您不能对动态类型使用扩展方法,就好像扩展方法是实例上的方法一样。请参阅此SO 帖子和此SO 帖子。您必须在底层静态类上使用扩展方法。

于 2013-02-19T15:02:38.827 回答
0

动态类型不支持扩展方法。希望这个链接能解释你的原因......

于 2013-02-19T15:20:17.023 回答