我正在 Windows 运行时组件中实现 IBackgroundTask,我想向其中注入一个记录器依赖项,但应用程序在调用后台任务时退出。它甚至不会进入构造函数。我使用 Ninject 作为 DI 容器,在应用程序的其他任何地方使用它都没有问题。
我想做这样的事情:
private readonly ILog _logger;
public BackroundTask(ILog logger)
{
_logger = logger;
}
public async void Run(IBackgroundTaskInstance taskInstance)
{
var deferral = taskInstance.GetDeferral();
try
{
// do something here
}
catch (Exception ex)
{
// log the error with injected logger...
logger.ErrorFormat("{0}Error in QueueTimer {1}{0}",
Environment.NewLine, ex.ToString());
}
deferral.Complete();
}
我尝试过的任何事情都没有成功,现在只需登录调用 .cs 文件中的 OnComplete 方法。