Я использую Prism в приложении UWP. Я регистрирую несколько параметров запуска для каждой модели просмотра в
protected override async void ConfigureContainer()
Я добавил ключевое слово async, потому что я хотел инициализировать некоторые соединения с БД, которые доступны в ConfigureContainer (). Но теперь я замечаю, что приложение запускается (иногда) без установки агентов запуска, что приводит к исключениям null ref. Я не должен инициализировать какие-либо соединения в этом методе? Почему это приложение не ожидает в ConfigureContainer ()? Куда мне поместить вызов метода инициализации Async при запуске приложения? Вот метод.
protected override async void ConfigureContainer()
{
// register a singleton using Container.RegisterType<IInterface, Type>(new ContainerControlledLifetimeManager());
base.ConfigureContainer();
Container.RegisterInstance<IResourceLoader>(new ResourceLoaderAdapter(new ResourceLoader()));
DocumentClient client = new DocumentClient(new Uri("https://docdb.etc/"),
"my key", new ConnectionPolicy() { ConnectionMode = ConnectionMode.Direct });
try
{
await client.OpenAsync();
}
catch (Exception ex)
{
throw new Exception("DocumentClient client could not open");
}
IDataAccessBM _db = new DataAccessDocDb(client, "ct", "ops");
AddressSearch addresSearcher = new AddressSearch(_db, 4);
StartUpArgs startUpArgs = new StartUpArgs
{
postCodeApiKey = "anotherKey",
db = _db,
fid = "bridge cars",
dialogService = new DialogService(),
addressSearcher = addresSearcher
};
startUpArgs.zoneSet = await _db.ZoneSetGetActiveAsync("another key");
Container.RegisterInstance(startUpArgs);
}