Alex Turner and Bill Chiles

1 Introduction 2

2 ExpandoObject 2

3 DynamicObject 4

3.1 DynamicBag: Implementing Our Own ExpandoObject 5

3.2 NamedBag: Optimizing DynamicObject with Statically Defined Members 6

4 IDynamicMetaObjectProvider and DynamicMetaObject 8

4.1 FastNBag: Faster Bags for N Slots 8

4.1.1 BindSetMember Method 9

4.1.2 BindGetMember Method 10

4.1.3 GetDynamicMemberNames Method 13

4.2 Further Reading 14

5 Appendix 14

5.1 DynamicObject Virtual Methods 14

5.2 FastNBag Full Source 15