Для вас есть несколько вариантов, если App.Current
равно нулю.
1) в фоновой службе инициализируйте новый экземпляр приложения:
var app = new App();
app.Container.Resolve<IMyService>();
2) используйтевспомогательный метод, который регистрирует только то, что вам нужно, и создает контейнер, необходимый для фоновой службы:
public class App : PrismApplication
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
RegisterBackgroundServices(containerRegistry);
}
public static void RegisterBackgroundServices(IContainerRegistry containerRegistry)
{
// Register services you need in the Background Service
}
}
public class MyBackgroundService
{
IContainerExtension Container { get; }
public MyBackgroundService()
{
// Note: Prism has some non-default Rules in place
Container = new DryIocContainerExtension(new Container());
App.RegisterBackgroundServices(Container);
}
}