[Mono-list] Determining the platform at compile and run time
A Rafael D Teixeira
Fri, 31 Oct 2003 05:23:13 -0200
>From: Fergus Henderson <email@example.com.OZ.AU>
>On 29-Oct-2003, Chris Seaton <firstname.lastname@example.org> wrote:
> > How do I know what OS my program is running on at run time?
>Why do you care?
>In general, it is a bad idea to test for particular operating systems.
In my case I needed to know which specific library to load and use. Because
the Windows version needed to PInvoke in the Win32 API (calling
FlushFileBuffers on an Stream handle), and the Mono one would have to make
an InternalCall (that would fsync the emulated Stream handle). Those things
were in a single piece of software before and would play havoc when
loaded/executed in the wrong CLI., what was always.
I used a modified PlugIn Pattern [Fowler - PoEAA], to make it transparent
for the Bamboo.Prevalence user, and without conditionally compiling two
different versions of the package.
I could use your try/catch solution, but I prefer to use "decisions
construed over known information" than "try/catch" for performance reasons.
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.