Как я могу дразнить стандартную программу ErrorSignal Elmah?

Если Вы просто хотите сделать это для отладки целей, изучают strace, который создается в вершине ptrace (2) системный вызов, который позволяет Вам поднимать трубку код, когда системный вызов сделан. Посмотрите часть PTRACE_SYSCALL страницы справочника.

17
задан tereško 15 March 2013 в 05:11
поделиться

1 ответ

Поскольку метод FromCurrentContext () является статическим методом, вы не можете просто имитировать его вызов. У вас есть еще два варианта.

  1. Поскольку FromCurrentContext () внутренне вызывает HttpContext.Current , вы можете вставить в него поддельный контекст. Например:

     SimpleWorkerRequest request = new SimpleWorkerRequest (
     "/ blah", @ "c: \ inetpub \ wwwroot \ blah", "blah.html", null, new StringWriter ());
    
    HttpContext.Current = новый HttpContext (запрос);
    

    При этом исключение больше не должно генерироваться, поскольку HttpContext.Current не равно null.

  2. Создайте класс-оболочку вокруг вызова Raise и просто имитируйте класс-оболочку.

     public class ErrorSignaler {
    
     public virtual void SignalFromCurrentContext (Exception e) {
     если (HttpContext.Current! = ноль)
     Elmah.ErrorSignal.FromCurrentContext (). Поднять (e);
     } 
    }
    
34
ответ дан 30 November 2019 в 12:07
поделиться
Другие вопросы по тегам:

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