autofac 구성에서 로거를 설정했지만 컨트롤러 또는 다른 클래스에서 로거가 주입되지 않습니다.Autofac을 사용하여 ILogger를 클래스에 주입 할 수 없습니다.
builder.RegisterType<SerilogLogger>()
.WithParameters(new List<Parameter>
{
new NamedParameter("connectionString", azureConnectionString),
new NamedParameter("azureTableName", azureTableName),
})
.As<ILogger>().SingleInstance();
HomeController.cs
public class HomeController : Controller
{
private ILogger logger;
public HomeController(ILogger logger)
{
this.logger = logger;
}
public ActionResult Index()
{
ViewBag.Title = "Home Page";
return View();
}
}
내가 명시 적으로 로거에 액세스해야합니다. 어떤 아이디어?
예외 정보
No parameterless constructor defined for this object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.MissingMethodException: No parameterless constructor defined for this object.
예외는, 정직 내 autofac의 설정에 문제가 될 것으로 보인다.
예외가 있습니까? 그렇다면 귀하의 질문에 완전한 예외 세부 사항을 추가하십시오. – Steven
Autofac에 등록한 ILogger 인터페이스가 생성자와 똑같은가요? 많은 ILogger 인터페이스가 있습니다. –
ILogger는 Nlog와 Serilog를 통해 작성한 인터페이스입니다. –