public object Create(ControllerContext context) { var controllerType = context.ActionDescriptor.ControllerTypeInfo.AsType(); if (controllerType == typeof(ReservationsController)) { var l = new ScopedLog(new FileLog(LogFile)); var controller = new ReservationsController( SeatingDuration, Tables, new LogReservationsRepository( new SqlReservationsRepository(ConnectionString), l), new LogClock( new SystemClock(), l)); Logs.AddOrUpdate(controller, l, (_, x) => x); return controller; } throw new InvalidOperationException( $"Unknown controller type: {controllerType}."); }