¿Cómo puedo usar la sintaxis del inicializador de colección con ExpandoObject?

He notado que la nuevaExpandoObject implementosIDictionary<string,object> que tiene el requisitoIEnumerable<KeyValuePair<string, object>> yAdd(string, object) métodos, por lo que debería ser posible usar la sintaxis del inicializador de colección para agregar propiedades al objeto expando de la misma manera que agrega elementos a un diccionario.

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;

Pero no parece haber una forma de hacerlo. Error

'System.Dynamic.ExpandoObject' no contiene una definición para 'Agregar'

Supongo que esto no funciona porque la interfaz se implementa explícitamente. pero hay alguna forma de evitar eso? Esto funciona bien,

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

pero la sintaxis del inicializador de colección es mucho más ordenada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta