Detecting if program is running in Mono

How can I detect if am running in Mono?

Having code that depends on the underlying runtime is considered to be bad coding style, but sometimes such code is necessary to work around runtime bugs. The supported way of detecting Mono is:

Any other hack, such as checking the underlying type of System.Int32 or of other corlib types, is doomed to fail in the future.