Обнаружение, если программа была запущена Visual Studio, в противоположность выполненному от Windows Explorer

Из весенних документов,

Встроенные контейнеры сервлетов - добавьте сервлет, фильтр или прослушиватель в приложение

Чтобы добавить сервлет, Фильтр или сервлет * Слушатель предоставляет для него определение @Bean.

blockquote>

Например:

@Bean
public Filter compressFilter() {
    CompressingFilter compressFilter = new CompressingFilter();
    return compressFilter;
}

Добавьте эту конфигурацию @Bean в свой класс @Configuration и фильтр будет зарегистрирован при запуске.

Также вы можете добавить Servlets, Filters и Listeners, используя сканирование классов,

@WebServlet, @WebFilter и @WebListener аннотированные классы могут автоматически регистрироваться в встроенном контейнере сервлетов, аннотируя класс @Configuration с помощью @ServletComponentScan и указывая пакет (ы), содержащий компоненты, которые вы хотите зарегистрировать. По умолчанию @ServletComponentScan будет сканировать из пакета аннотированного класса.

blockquote>

25
задан Mark Rushakoff 27 August 2009 в 18:56
поделиться

4 ответа

Если вы делаете это, чтобы определить, есть ли он в любом отладчике (поясняется @JaredPar ), вы можете использовать Debugger .IsAttached в обработчике исключений.

try
{
    // ...
}
catch(Exception ex)
{
    if (!Debugger.IsAttached)
    {
        ExceptionHandler.Frob(ex);
    }
    else
    {
        throw;
    }
}

В качестве альтернативы:

public static void Frob(Exception ex)
{
    if (Debugger.IsAttached)
    {
        Debugger.Break();
    }
}
51
ответ дан 28 November 2019 в 04:48
поделиться

Рассматривали ли вы аргументы командной строки? Запустите программу из Visual Studio с флагом --no-exception-processing (или любым другим подходящим звуком) и не обрабатывайте исключения, если этот аргумент передается. Когда вы запустите программу в другом месте, без этого аргумента, она будет вести себя нормально.

3
ответ дан Rogier Van Etten 15 October 2019 в 15:41
поделиться

Я не занимаюсь разработкой .net, но в java я сделал это, передав флаг в параметры запуска приложения. Таким образом, вы можете передать флаг отладки в приложение из среды IDE, а затем проверить это, когда приложение запускается как исполняемый файл, флаг не будет присутствовать. Я был бы удивлен, если бы в .net не было чего-то подобного.

2
ответ дан 28 November 2019 в 04:48
поделиться

Вместо отслеживания по дереву процессов я бы добавил флаг конфигурации, который включает функцию отчетов. Флаг всегда может быть установлен по умолчанию на «true», если вы не находитесь в среде DEV, тогда вы установите его на «false».

1
ответ дан 28 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: