我对依赖注入有点新意。我正在尝试使用ASP.NET 5,并且正在努力弄清楚如何在ASP.NET 5类库中使用服务。特别是日志记录和EF数据访问等简单的事情。
例如我在这里遵循指南: http://docs.asp.net/en/latest/fundamentals/logging.html
这使我能够登录主应用程序。然后,如何在类库中输出日志事件?
我知道从类库中引用主应用程序并想弄清楚如何正确地执行它是不好的做法。
答案 0 :(得分:3)
通过在构造函数中传递if ($result->num_rows > 0) {
$options= '';
// output data of each row
echo ("in");
while($row = mysqli_fetch_array($result))
{
echo "<table>";
echo "<tr>";
echo "<th style='color: rgb(0, 128, 0);'>".$row['eventName']."</th>";
echo "</tr>";
}
echo "</table>";
} else {
echo "0 results";
}
echo $options;
,就像在示例中一样,为您的类创建一个记录器:
ILogger<YourClass>
或传递public class MyClass : IMyClass
{
private readonly ILogger<MyClass> _logger;
public (ILogger<MyClass> logger)
{
_logger = logger;
}
public void MyMethod()
{
_logger.LogInformation("a log");
}
}
:
ILoggerFactory
按Dependency Injection解决您的课程:
public class MyClass: IMyClass
{
private readonly ILogger _logger;
public (ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreatLogger("MyClass");
}
public void MyMethod()
{
_logger.LogInformation("a log");
}
}
然后你可以在控制器中使用它:
services.AddTransient<IMyClass, MyClass>();