я в консольном приложении? - PullRequest
2 голосов
/ 01 декабря 2010

Есть ли способ обнаружить внутри компонента в C #, если приложение, которое использует этот компонент, работает в консольном приложении или других?

Ответы [ 4 ]

8 голосов
/ 01 декабря 2010

Используйте Environment.UserInteractive. Если true, вы находитесь в консоли. Если false, вы можете быть в службе.

1 голос
/ 02 декабря 2010

Необходимая информация является собственностью вашей сборки exe. Если вы используете инструмент, такой как ildasm.exe, для просмотра манифеста вашей сборки, вы можете увидеть свойство .subsystem, которое указывает тип среды выполнения, запускающей ваш метод Main.

Однако кажется, что Reflection не предоставляет эту информацию напрямую.

Код в следующей ссылке содержит пример того, как прочитать сам файл .exe и обнаружить эту информацию:

http://blogs.msdn.com/b/kstanton/archive/2004/03/31/105060.aspx

Надеюсь, это помогло.

1 голос
/ 01 декабря 2010

Пожалуйста, посмотрите этот пример для вашего решения: http://weblogs.asp.net/whaggard/archive/2004/08/30/223020.aspx

0 голосов
/ 01 декабря 2010

Отражение - это одно из первых мест, которые я бы посмотрел -

http://msdn.microsoft.com/en-us/library/system.reflection.assembly.getexecutingassembly.aspx

В: Насколько «уверенным» вам нужно быть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...