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 ([EMAIL PROTECTED])
// And encapsulated by Rafael Teixeira ([EMAIL PROTECTED])


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:

-------
[EMAIL PROTECTED] desktop]$ mcs Mono.Environment.cs
Compilation succeeded
[EMAIL PROTECTED] 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


_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to