¿Por qué no puedo indexar en un ExpandoObject?

Algo me sorprendió al analizar la dinámica de C # hoy (nunca los he usado mucho, pero últimamente he estado experimentando con el marco web de Nancy). Descubrí que no podía hacer esto:

dynamic expando = new ExpandoObject();

expando.name = "John";

Console.WriteLine(expando["name"]);

La última línea arroja una excepción:

No se puede aplicar la indexación con [] a una expresión de tipo 'System.Dynamic.ExpandoObject'

Entiendo el mensaje de error, pero no entiendo por qué sucede esto. He mirado la documentación de ExpandoObject y se implementa explícitamenteIDictionary<,> y por lo tanto tiene unthis.[index] método (MSDN) ¿Por qué no puedo llamarlo?

Por supuesto, no hay nada que me impida abatir elExpandoObject a un diccionario manualmente y luego indexarlo, pero eso desafía el punto; tampoco explica cómo Expando pudo ocultar el método de una de sus interfaces.

¿Que está pasando aqui?

Respuestas a la pregunta(1)

Su respuesta a la pregunta