Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

292
Views
¿Cómo proporcionar una instancia de ILogger<ClassName> en un nuevo objeto de clase desde el controlador en .net core?

Dado que da nulo, el valor no puede ser nulo. (Parámetro 'registrador') error. Incluso si se da una instancia del modelo, sigue siendo nulo

 public class MyController : Controller { public MyController(ILogger<MyController> logger) { logger.LogInformation("Log Testing"); } public ActionResult List() { int Id = 5; MyModel model = new MyModel(null); model.GetItem(Id); return View("List", model); } } public class MyModal:BaseModel { private readonly ILogger<MyModal> _logger; public MyModel(ILogger<MyModel> logger) { this._logger = logger; } public MyModel GetItem (Int Id) { try { //My Code } catch(Exception e){ _logger.LogError(e.Message); } } }

Según la sugerencia, edité mi pregunta.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Como se sugiere en los comentarios:

  1. Inyecte ILoggerFactory en MyController y guárdelo en una variable de campo (por ejemplo _loggerFactory ).
  2. Use la fábrica para construir un registrador para MyModel en su método List : ILogger<MyModel> modelLogger = _loggerFactory.CreateLogger<MyModel>();
  3. Pásalo al constructor MyModel : MyModel model = new MyModel(modelLogger);

Ejemplo:

 public class MyController { private readonly ILogger _logger; private readonly ILoggerFactory _loggerFactory; public MyController(ILogger<MyController> logger, ILoggerFactory loggerFactory) { _logger = logger; _loggerFactory = loggerFactory; } public ActionResult List() { int Id = 5; ILogger<MyModel> modelLogger = _loggerFactory.CreateLogger<MyModel>(); MyModel model = new MyModel(modelLogger); model.GetItem(Id); return View("List", model); } }

Pruébelo en línea

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!