Warum kann ich kein ExpandoObject indizieren?

Etwas überraschte mich, als ich mich heute mit C # -Dynamik beschäftigte (ich habe sie nie viel benutzt, aber in letzter Zeit habe ich mit dem Nancy-Webframework experimentiert). Ich habe festgestellt, dass ich das nicht tun kann:

dynamic expando = new ExpandoObject();

expando.name = "John";

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

Die letzte Zeile löst eine Ausnahme aus:

Kann keine Indizierung mit [] auf einen Ausdruck vom Typ 'System.Dynamic.ExpandoObject' anwenden

Ich verstehe die Fehlermeldung, aber ich verstehe nicht, warum dies geschieht. Ich habe mir die Dokumentation für ExpandoObject angesehen und es implementiert explizitIDictionary<,> und hat somit einthis.[index] Methode MSDN). Warum kann ich es nicht anrufen?

Natürlich gibt es nichts, was mich davon abhält, das @ niederzuschlageExpandoObject zu einem Wörterbuch manuell und dann indizieren, aber diese Art von trotzt dem Punkt; es erklärt auch nicht, wie der Expando die Methode einer seiner Schnittstellen verbergen konnte.

Was ist denn hier los

Antworten auf die Frage(1)

Ihre Antwort auf die Frage