expando对象是如何在内部实现的

时间:2010-03-09 04:01:19

标签: .net

我真的很想知道.Net 4.0中的Expando对象是如何在内部实现的?

4 个答案:

答案 0 :(得分:9)

您不必使用Reflector,DLR的源代码随时可用于download here。很好评论。您将在src \ Runtime \ Microsoft.Scripting.Core \ Actions \ ExpandoObject.cs中找到ExpandoObject的源代码

ExpandoObject的数据存储是ExpandoData,可在同一源文件中使用。这些值存储在一个简单的对象[]中。 ExpandoClass(相同目录)在简单的字符串[]中跟踪密钥。 ExpandoObject肯定不会像之前所说的那样使用Dictionary,但它确实实现了IDictionary。

答案 1 :(得分:3)

它在内部实现为字典。

查看Alexandra Rusina关于here主题和我here主题的博客。

答案 2 :(得分:1)

使用Reflector,现在支持.Net 4.0。

答案 3 :(得分:0)