Я использую Botframework с Botbuilder-решениями, но я не понимаю, почему DialogContext
в методе continueDialog
в глубоко вложенном диалоге не относится к текущему диалогу.
Фактически, первый аргумент в методе continueDialog
в самом глубоком вложенном диалоге (который расширяет класс ComponentDialog
) всегда ссылается на DialogContext
MainDialog (см. Последовательность действий ниже).
Например, у нас есть этот поток диалогов:
- MainDialog (RouterDialog)
|--ChildDialog (ComponentDialog)
|-- ChildChildDialog (ComponentDialog)
Из MainDialog, который является RouterDialog
, я добавляю некоторый диалог, такой как ChildDialog
и из метода route
Я начинаю диалог на основе намерения.Пока здесь это не работает хорошо, потому что я в ChildDialog, как и ожидалось.Но если добавить новый диалог ChildChildDialog в ChildDialog, который расширяется от ComponentDialog
в методе continueDialog
, DialogContext
будет ссылаться не на текущий диалог, а на набор диалогов MainDialog
Так что, если я хотел быСоздавая вложенные диалоги, я должен добавить каждый диалог в главное диалоговое окно, чтобы дать понять, что такое идентификатор диалога, на который я ссылаюсь, потому что в противном случае он не может найти ни одного диалога с этим идентификатором.
Это правильный путь?Должен ли я продолжать регистрировать каждый диалог в главном диалоге или есть какой-то хороший и практичный способ?