Не ясно, чего вы собираетесь достичь.
По крайней мере, Ваш код
{
path: RouteSegment1.value1/RouteSegment2.value1,
component: RouteSegment2Component,
},
должен быть записан как
{
path: RouteSegment1.value1,
component: RouteSegment1Component,
children: [
{
path: RouteSegment2.value1,
component: RouteSegment2Component
}
]
}
В инструментах тестирования логотипа Microsoft для Windows есть инструмент под названием Restart Manager (rmtool.exe), который можно использовать для отправки сообщений о выключении и перезапуске на процесс. Инструменты тестирования логотипов можно загрузить здесь:
http://download.microsoft.com/download/d/2/5/d2522ce4-a441-459d-8302-be8f3321823c/LogoToolsv1.0.msi
Тогда вы можете имитировать завершение работы вашего процесса:
rmtool.exe -p [PID] -S
где [PID] - это идентификатор процесса. Согласно документу «Сценарии сертификационных тестов Vista Logo»
сообщения о завершении работы Restart Manager:
a. WM_QUERYENDSESSION с LPARAM = ENDSESSION_CLOSEAPP (0x1): приложения GUI должны немедленно ответить (TRUE), чтобы подготовиться к перезапуску.
б. WM_ENDSESSION с LPARAM = ENDSESSION_CLOSEAPP (0x1): приложение должно завершиться в течение 5 секунд (20 секунд для служб).
с. CTRL_SHUTDOWN_EVENT: консольные приложения должны немедленно завершиться.
Я верю, когда Windows закрывается, он отправляет "WM_QueryEndSession" во все приложения. Для моделирования завершения работы Windows, Вы могли создать немного приложения, которое просто делает PostMessage с этим сообщением к Вашему приложению и видит то, что происходит. Windows может отправить больше сообщений, чем это для фактического закрытия приложения (как WM_CLOSE), но каждый раз, когда приложение получает сообщение "WM_QueryEndSession", это означает, что приложение собирается вытянуть коврик из-под него.
Вы могли использовать SystemEvents. Событие SessionEnding, которое запущено, когда пользователь выходит из системы или закрывается. Будьте осторожны при использовании его, хотя, некоторые ресурсы, как гарантируют, не будут доступны. Например, мое приложение должно было поразить сервер, когда оно закрывалось для отмечания время ухода с работы пользователя (приложение табельных часов), но сетевая плата иногда уже отключается, когда это событие имеет место. Так как Вы просто делаете очистку, это должно хорошо работать.