[Mono-list] Determining the platform at compile and run time
A Rafael D Teixeira
rafaelteixeirabr@hotmail.com
Thu, 30 Oct 2003 22:34:28 -0200
Here is a small twist, save it as Mono.Environment.cs and compile as a
library to use or as an executable to just test:
-------
// How can I tell dynamically what platform my code is running on?
//
// This is one possible approach, contributed by Aleksey Demakov
(avd@openlinksw.com)
// And encapsulated by Rafael Teixeira (rafaelteixeirabr@hotmail.com)
using System;
namespace Mono {
public enum RunningPlatform { MonoOnUnix, MonoOnWin32, DotNet };
public class Environment {
public static RunningPlatform RunningPlatform {
get {
Type enumType = typeof(PlatformID);
if (Enum.IsDefined (enumType, "Unix")) {
if (System.Environment.OSVersion.Platform == (PlatformID)
Enum.Parse(enumType, "Unix"))
return RunningPlatform.MonoOnUnix;
else
return RunningPlatform.MonoOnWin32;
}
return RunningPlatform.DotNet;
}
}
public static void Main(String[] parameters) {
Console.WriteLine("Running in " +
Environment.RunningPlatform.ToString());
}
}
}
-------
on my RedHat9, obviously as a program it prints:
-------
[rafael@redhat9 desktop]$ mcs Mono.Environment.cs
Compilation succeeded
[rafael@redhat9 desktop]$ mono Mono.Environment.exe
Running in MonoOnUnix
-------
best regards,
Rafael Teixeira
Brazilian Polymath
Mono Hacker since 16 Jul 2001
English Blog: http://monoblog.blogspot.com/
Brazilian Portuguese Blog: http://monoblog.weblogger.terra.com.br/
_________________________________________________________________
MSN Messenger: instale grátis e converse com seus amigos.
http://messenger.msn.com.br