Adicionar dinamicamente propriedades C # no tempo de execução

Eu sei que existem algumas questões que abordam isso, mas as respostas geralmente seguem as linhas de recomendação de um dicionário ou coleção de parâmetros, o que não funciona na minha situação.

Eu estou usando uma biblioteca que funciona através de reflexão para fazer muitas coisas inteligentes com objetos com propriedades. Isso funciona com classes definidas, assim como classes dinâmicas. Eu preciso dar um passo além e fazer algo ao longo destas linhas:

public static object GetDynamicObject(Dictionary<string,object> properties) {
    var myObject = new object();
    foreach (var property in properties) {
        //This next line obviously doesn't work... 
        myObject.AddProperty(property.Key,property.Value);
    }
    return myObject;
}

public void Main() {
    var properties = new Dictionary<string,object>();
    properties.Add("Property1",aCustomClassInstance);
    properties.Add("Property2","TestString2");

    var myObject = GetDynamicObject(properties);

    //Then use them like this (or rather the plug in uses them through reflection)
    var customClass = myObject.Property1;
    var myString = myObject.Property2;

}

A biblioteca funciona bem com um tipo de variável dinâmica, com propriedades atribuídas manualmente. No entanto, não sei quantas ou quais propriedades serão adicionadas de antemão.

questionAnswers(2)

yourAnswerToTheQuestion