There's a stability issue in a .NET dynamically generated code. I've attached a small project generating 1 new type with 1 field and 1 method. Placing a breakpoint in ClassField.Initialize method, and trying evaluate in Debug Watch window "this" pointer will result in an error "Cannot obtain value of local or argument '<this>'". In a much larger project if ClassField.Initialize contains plenty of code allocating objects in memory, it will cause whole program to crash after a random period of time in a totaly random places (perhaps Garbage Collector is messing up memory).
The program actually contains a bug which causes this behaviour. In a generated code, there's an Opcode "LDFLDA", instead of "LDFLD". Changing to "LDFLD" fixes the problem, however VM should detect this during method generation to avoid any future instability.