[C#] New types during runtime?

Is it possible to construct and then use new types during runtime which did not exist at compile?

I found a similar question on Stack Overflow, with some interesting approaches, like System.Reflection.Emit and CodeDOM.

http://stackoverflow.com/questions/929349/is-there-a-way-to-build-a-new-type-during-runtime