Is there any way to know in C# the type of application that is running.
Windows Service ASP.NET Windows Form Console
I would like to react to the application type but cannot find a way to determine it.
Is there any way to know in C# the type of application that is running.
Windows Service ASP.NET Windows Form Console
I would like to react to the application type but cannot find a way to determine it.
Try checking Application.MessageLoop
. It should be true for Windows Forms applications (that have a WinForms message loop), and false for windows services. I don't know what it would return for ASP.NET.
As for console applications, they would have no message loop so they would return false. You can check for that using most properties in the Console
class, but I warn you that it's a HACK. If you must, I'd go with:
bool isConsole = Console.In != StreamReader.Null;
Note, that a console app could still call Console.SetIn(StreamReader.Null)
or a windows app could call Console.SetIn(something else
), so this is easily tricked.
You should have the client code tell your code what the context is and then work from that. At best, you will be able to guess based on external factors.
If you must guess, this is what I would look for: