Como posso adicionar propriedades a uma classe em tempo de execução em c #?

Eu tenho uma aula:

class MyClass 
{
}
...
MyClass c = new MyClass();

É possível adicionar propriedades / campos a essa classe em tempo de execução?

(Eu não sei quais são seus tipos ou nomes em tempo de compilação e eles não têm uma interface comum que eu possa usar.)

exemplo do psuedo:

 Add property named "Prop1" [type System.Int32]
 Add property named "Prop900" [type System.String]

Eu já liessa questão mas usa interface

Desde já, obrigado.

questionAnswers(3)

yourAnswerToTheQuestion