我正在为WebApi实现ExceptionLogger,其中异常被记录到数据库中。
public class CustomExceptionLogger : ExceptionLogger
{
public override async Task LogAsync(ExceptionLoggerContext context, CancellationToken cancellationToken)
{
var log = new Logger();
await log.LogMessage(context.Exception); --Cannot await 'void' complie time error here
}
}
public class Logger
{
public void LogMessage(Exception ex)
{
//code to insert message into db
}
}
如何解决这个问题?
答案 0 :(得分:4)
如果你真的希望LogMessage()是异步和等待的,你需要改变你的代码看起来像这样:
public class Logger
{
public async Task LogMessage(Exception ex)
{
//code to insert message into db
}
}
对于任何用途,您的数据库插入代码也应该是异步的。