Existe-t-il un moyen de déterminer si l'application exécutée est WinForms ou Web lors de l'exécution?Déterminer si l'application est WinForms ou WebForms
[Modifier]
Est-il vraiment un problème si je fais référence à la fois System.Web
et System.Windows.Forms
dans ma bibliothèque de classe?
[Résumé] (jusqu'à présent)
Ce que j'ai appris jusqu'à présent:
HttpContext.Current
estnull
si elle est cochée dans un fil de async, donc il ne peut pas être utilisé de manière fiable dans une aide méthode.HttpRuntime.Cache
n'aide pas vraiment puisque je ne cherche pas du tout le contexte en cache (ou est-ce que je manque quelque chose ici?). D'autre part,System.Reflection.Assembly.GetEntryAssembly()
semble retournernull
dans les applications web, et non null dans WinForms. Cela devrait-il être considéré comme acquis? Il devrait y avoir plus de "hacks" comme ça, alors lequel utiliser?- référençant à la fois
System.Web
etSystem.Windows.Forms
dans une bibliothèque auxiliaire devrait être bien, selon this thread.
Merci! Pourriez-vous également vérifier ma question mise à jour pour un détail supplémentaire? – dummy
Comme l'écrit M. Smith ci-dessous, HttpContext.Current est null lorsque vous effectuez des tâches asynchrones, donc cela ne fonctionne pas toujours. – dummy