Ответ 1
Из Моно FAQ:
http://www.mono-project.com/FAQ:_Technical
Ниже приведена прямая ссылка:
Как определить, работает ли в Mono?
Считается, что код, зависящий от базовой среды выполнения, плохой стиль кодирования, но иногда такой код необходим для работы ошибки времени выполнения. Поддерживаемый способ обнаружения Mono:
using System;
class Program {
static void Main ()
{
Type t = Type.GetType ("Mono.Runtime");
if (t != null)
Console.WriteLine ("You are running with the Mono VM");
else
Console.WriteLine ("You are running something else");
}
}
Любые другие взломы, такие как проверка базового типа System.Int32 или других типов corlib, обречен на провал в будущем.
Длинные и короткие, просто нет.