ComponentDialog 类
由其他对话组成的 Dialog
初始化 ComponentDialog 的新实例
变量
| 名称 | 说明 |
|---|---|
|
state
|
<xref:persisted_dialog>
|
方法
| add_dialog |
将 Dialog 添加到组件对话框并返回更新的组件。 |
| begin_dialog |
启动对话并将其推送到父级对话堆栈时调用。 如果任务成功,则结果指示对话在对话框处理轮次后是否仍然处于活动状态。 |
| continue_dialog |
在对话继续时调用,其中是活动对话,用户使用新活动进行答复。 |
| end_component |
在其父上下文中结束组件对话框。 |
| end_dialog |
对话框结束时调用。 |
| find_dialog |
按 ID 查找对话框。 |
| on_begin_dialog |
启动对话并将其推送到父级对话堆栈时调用。 |
| on_continue_dialog |
在对话继续时调用,其中是活动对话,用户使用新活动进行答复。 |
| on_end_dialog |
在其父上下文中结束组件对话框。 |
| on_reprompt_dialog | |
| reprompt_dialog |
当对话框应重新提示用户输入时调用。 |
| resume_dialog |
当父对话堆栈上的子对话完成此轮次时调用,并将控件返回到此对话组件。 |
add_dialog
将 Dialog 添加到组件对话框并返回更新的组件。
add_dialog(dialog: Dialog) -> object
参数
| 名称 | 说明 |
|---|---|
|
dialog
必需
|
要添加的对话。 |
返回
| 类型 | 说明 |
|---|---|
|
更新后的 ComponentDialog。 |
begin_dialog
启动对话并将其推送到父级对话堆栈时调用。
如果任务成功,则结果指示对话在对话框处理轮次后是否仍然处于活动状态。
async begin_dialog(dialog_context: DialogContext, options: object = None) -> DialogTurnResult
参数
| 名称 | 说明 |
|---|---|
|
dialog_context
必需
|
会话当前轮次的 DialogContext。 |
|
options
|
可选,要传递给对话框的初始信息。 默认值: None
|
返回
| 类型 | 说明 |
|---|---|
|
向轮次结束发出信号 |
continue_dialog
在对话继续时调用,其中是活动对话,用户使用新活动进行答复。
async continue_dialog(dialog_context: DialogContext) -> DialogTurnResult
参数
| 名称 | 说明 |
|---|---|
|
dialog_context
必需
|
会话当前轮次的父对话上下文。 |
返回
| 类型 | 说明 |
|---|---|
|
向轮次结束发出信号 |
注解
如果任务成功,则结果指示对话在对话框处理轮次后是否仍然处于活动状态。 结果还可能包含返回值。
如果此方法 未 重写组件对话框,则调用其内部对话上下文上的 continue_dialog 方法。 如果内部对话堆栈为空,则组件对话结束;如果 result 可用,则组件对话会使用该对话框作为返回值。
end_component
end_dialog
对话框结束时调用。
async end_dialog(context: TurnContext, instance: DialogInstance, reason: DialogReason) -> None
参数
| 名称 | 说明 |
|---|---|
|
context
必需
|
此轮次的上下文对象。 |
|
instance
必需
|
与此组件对话框实例关联的状态信息。 |
|
reason
必需
|
对话框结束的原因。 |
find_dialog
按 ID 查找对话框。
async find_dialog(dialog_id: str) -> Dialog
参数
| 名称 | 说明 |
|---|---|
|
dialog_id
必需
|
要添加的对话。 |
返回
| 类型 | 说明 |
|---|---|
|
对话框;如果 ID 不匹配,则为 None。 |
on_begin_dialog
启动对话并将其推送到父级对话堆栈时调用。
async on_begin_dialog(inner_dc: DialogContext, options: object) -> DialogTurnResult
参数
| 名称 | 说明 |
|---|---|
|
inner_dc
必需
|
当前对话轮次的内部对话上下文。 |
|
options
必需
|
可选,要传递给对话框的初始信息。 |
注解
如果任务成功,则结果指示对话在对话框处理轮次后是否仍然处于活动状态。
默认情况下,这会调用组件对话的初始对话的 begin_dialog 方法。
在派生类中重写此方法以实现中断逻辑。
on_continue_dialog
在对话继续时调用,其中是活动对话,用户使用新活动进行答复。
async on_continue_dialog(inner_dc: DialogContext) -> DialogTurnResult
参数
| 名称 | 说明 |
|---|---|
|
inner_dc
必需
|
当前对话轮次的内部对话上下文。 |
on_end_dialog
在其父上下文中结束组件对话框。
async on_end_dialog(context: TurnContext, instance: DialogInstance, reason: DialogReason) -> None
参数
| 名称 | 说明 |
|---|---|
|
turn_context
必需
|
会话当前轮次的 TurnContext。 |
|
instance
必需
|
与此组件对话的内部对话堆栈关联的状态信息。 |
|
reason
必需
|
对话框结束的原因。 |
|
context
必需
|
|
on_reprompt_dialog
async on_reprompt_dialog(turn_context: TurnContext, instance: DialogInstance) -> None
参数
| 名称 | 说明 |
|---|---|
|
turn_context
必需
|
会话当前轮次的 TurnContext。 |
|
instance
必需
|
与此组件对话的内部对话堆栈关联的状态信息。 |
reprompt_dialog
当对话框应重新提示用户输入时调用。
async reprompt_dialog(context: TurnContext, instance: DialogInstance) -> None
参数
| 名称 | 说明 |
|---|---|
|
context
必需
|
此轮次的上下文对象。 |
|
instance
必需
|
此对话框的状态信息。 |
resume_dialog
当父对话堆栈上的子对话完成此轮次时调用,并将控件返回到此对话组件。
async resume_dialog(dialog_context: DialogContext, reason: DialogReason, result: object = None) -> DialogTurnResult
参数
| 名称 | 说明 |
|---|---|
|
dialog_context
必需
|
对话的当前轮次的对话上下文。 |
|
reason
必需
|
对话恢复的原因。 |
|
result
|
可选,从调用的对话框返回的值。 默认值: None
|
返回
| 类型 | 说明 |
|---|---|
|
向轮次结束发出信号 |
注解
容器通常是堆栈上的叶节点,但开发人员可以自由地在堆栈顶部推送其他对话,这将导致容器在对话结束时收到对 resume_dialog 的意外调用。 为了避免容器过早结束,我们需要实现此方法,只需要求内部对话堆栈重新提示。
属性
persisted_dialog_state
persisted_dialog_state = 'dialogs'