Ответ 1
Так как метод FromCurrentContext()
является статическим методом, вы не можете просто издеваться над ним. У вас есть еще два варианта.
-
Так как
FromCurrentContext()
делает внутренний вызовHttpContext.Current
, вы можете подталкивать поддельный контекст. Например:SimpleWorkerRequest request = new SimpleWorkerRequest( "/blah", @"c:\inetpub\wwwroot\blah", "blah.html", null, new StringWriter()); HttpContext.Current= new HttpContext(request);
С этим он больше не должен генерировать исключение, так как
HttpContext.Current
не является нулевым. -
Создайте класс оболочки вокруг вызова Raise и просто издевайтесь над классом-оболочкой.
public class ErrorSignaler { public virtual void SignalFromCurrentContext(Exception e) { if (HttpContext.Current != null) Elmah.ErrorSignal.FromCurrentContext().Raise(e); } }