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

pri*_*ore 4 .net

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

Han*_*ant 9

您不必乱用Reflector,DLR的源代码可在此处下载.很好评论.您将在src\Runtime\Microsoft.Scripting.Core\Actions\ExpandoObject.cs中找到ExpandoObject的源代码

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


Dav*_*ton 4

它在内部作为字典实现。

请查看 Alexandra Rusina 关于该主题的博客(此处)和我的博客(此处)