2011-08-16 16 views

risposta

18

Dalla FAQ Mono:

http://www.mono-project.com/FAQ:_Technical

Di seguito direttamente da questo link:

Come posso rilevare se sono in esecuzione in Mono?

codice Avere che dipende il runtime di base è considerato cattivo stile di codifica, ma a volte tale codice è necessario per aggirare bug di runtime. Il metodo supportato di rilevare 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"); 
    } 
} 

Qualsiasi altro mod, come controllo tipo sottostante di System.Int32 o di altri tipi corlib, è destinato a fallire nel futuro.

Molto breve, semplicemente no.

+0

Grazie Adam. Chiedo solo perché potrebbe essere necessario risolvere un bug. – Simon

+0

@Simon nessun problema - a volte anche le cose che apparentemente non dovresti fare sono richieste. –

+0

risulta essere un duplicato :) ma avevi ancora una buona risposta – Simon

11

Da mono porting guide:

public static bool IsRunningOnMono() 
{ 
    return Type.GetType ("Mono.Runtime") != null; 
} 
Problemi correlati