Como posso usar a sintaxe do inicializador de coleção com o ExpandoObject?

Eu notei que o novoExpandoObject implementaIDictionary<string,object> que tem o requisitoIEnumerable<KeyValuePair<string, object>> eAdd(string, object) métodos e, portanto, deve ser possível usar a sintaxe do inicializador de coleção para adicionar propriedades ao objeto expando da mesma maneira que você adiciona itens a um dicionári

Dictionary<string,object> dict = new Dictionary<string,object>() 
{
    { "Hello", "World" }
};

dynamic obj = new ExpandoObject()
{
    { "foo", "hello" },
    { "bar", 42 },
    { "baz", new object() }
};

int value = obj.bar;

Mas não parece haver uma maneira de fazer isso. Erro

'System.Dynamic.ExpandoObject' não contém uma definição para 'Adicionar'

Presumo que isso não funcione porque a interface é implementada explicitamente. mas existe alguma maneira de contornar isso? Isso funciona bem,

IDictionary<string, object> exdict = new ExpandoObject() as IDictionary<string, object>();
exdict.Add("foo", "hello");
exdict.Add("bar", 42);
exdict.Add("baz", new object());

mas a sintaxe do inicializador de coleção é muito mais clar

questionAnswers(6)

yourAnswerToTheQuestion