Я использую Unity, и я регистрирую регистратор, как это:
public class MvcApplication : System.Web.HttpApplication
{
private ILogger _logger;
protected void Application_Start()
{
...
var container = new UnityContainer();
container.RegisterType<ILogger, NLogLogger>();
container.RegisterControllers();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
_logger = container.Resolve<ILogger>();
_logger.Info("Application started");
}
Это, кажется, работает нормально - сообщение записано.
Позже в global.asax.cs у меня есть это:
protected void Application_End()
{
_logger.Info("App is shutting down");
}
protected void Application_Error()
{
Exception lastException = Server.GetLastError();
_logger.Fatal(lastException);
}
Однако это вызывает исключение - _logger имеет значение null. Я подозреваю, что я делаю что-то не так с Unity - так как правильно использовать регистратор внутри global.asax?