Why can’t I index into an ExpandoObject?

how the Expando was able to hide the method of one of its interfaces.

Because as you correctly found out in the documentation, the indexer is an explicit interface implementation. From Explicit Interface Implementation Tutorial:

A class that implements an interface can explicitly implement a member of that interface. When a member is explicitly implemented, it cannot be accessed through a class instance, but only through an instance of the interface.

This means you’ll have to cast the reference to the interface to access it:

((IDictionary<String, Object>)expando)["name"]

Leave a Comment