J'ai besoin d'un commutateur de compilation conditionnelle qui sache si je compile pour le runtime mono ou MS .NET. Comment puis-je le faire ?
Réponses
Trop de publicités?Le compilateur Mono définit __MonoCS__
MAIS, MAIS, MAIS L'intérêt de Mono est que vous pouvez prendre un assemblage que vous avez construit avec VS et le faire fonctionner avec Mono, ou vice versa.
Il me semble que si vous avez besoin d'avoir des différences entre Mono et MS.NET, alors vous devez prendre ces décisions au moment de l'exécution.
La méthode standard pour détecter Mono au moment de l'exécution est la suivante :
bool runningOnMono = Type.GetType ("Mono.Runtime") != null;
Il est clair qu'il y a des cas où le code d'une plate-forme sera différent de celui d'une autre plate-forme et vous pouvez souhaiter le faire au moment de l'exécution ou de la compilation.
Un cas simple est celui des noms de fichiers et des chemins. Ceux-ci diffèrent sur chaque plateforme. Je pourrais juste avoir une petite condition pour charger les chaînes de caractères différemment sur chaque plateforme. Ce serait bien s'il y avait un petit bout de code qui renvoie la plateforme actuelle - que ce soit UNIX, iOS, Mac, X86, X64, XBox etc.....