ComponentDialog 類別
由其他對話框組成的 Dialog
初始化 ComponentDialog 的新實例
變數
| 名稱 | Description |
|---|---|
|
state
|
<xref:persisted_dialog>
|
方法
| add_dialog |
將 Dialog 新增至元件對話框,並傳回更新的元件。 |
| begin_dialog |
啟動對話框並推送至父代對話堆棧時呼叫。 如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。 |
| continue_dialog |
在繼續對話時呼叫,其中為使用中的對話框,而使用者會以新的活動回復。 |
| end_component |
結束其父系內容中的元件對話框。 |
| end_dialog |
對話框結束時呼叫。 |
| find_dialog |
依標識碼尋找對話框。 |
| on_begin_dialog |
啟動對話框並推送至父代對話堆棧時呼叫。 |
| on_continue_dialog |
在繼續對話時呼叫,其中為使用中的對話框,而使用者會以新的活動回復。 |
| on_end_dialog |
結束其父系內容中的元件對話框。 |
| on_reprompt_dialog | |
| reprompt_dialog |
當對話框應該重新提示使用者輸入時呼叫。 |
| resume_dialog |
當父代對話堆疊上的子對話完成這個回合時呼叫,將控制權傳回給這個對話元件。 |
add_dialog
將 Dialog 新增至元件對話框,並傳回更新的元件。
add_dialog(dialog: Dialog) -> object
參數
| 名稱 | Description |
|---|---|
|
dialog
必要
|
要新增的對話框。 |
傳回
| 類型 | Description |
|---|---|
|
更新的 ComponentDialog。 |
begin_dialog
啟動對話框並推送至父代對話堆棧時呼叫。
如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。
async begin_dialog(dialog_context: DialogContext, options: object = None) -> DialogTurnResult
參數
| 名稱 | Description |
|---|---|
|
dialog_context
必要
|
交談目前回合的 DialogContext。 |
|
options
|
要傳遞至對話框的選擇性初始資訊。 預設值: None
|
傳回
| 類型 | Description |
|---|---|
|
發出回合結尾的訊號 |
continue_dialog
在繼續對話時呼叫,其中為使用中的對話框,而使用者會以新的活動回復。
async continue_dialog(dialog_context: DialogContext) -> DialogTurnResult
參數
| 名稱 | Description |
|---|---|
|
dialog_context
必要
|
交談目前回合的父對話內容。 |
傳回
| 類型 | Description |
|---|---|
|
發出回合結尾的訊號 |
備註
如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。 結果也可能包含傳回值。
如果此方法 未 覆寫元件對話框,則會呼叫其內部對話內容上的 continue_dialog 方法。 如果內部對話堆疊是空的,則元件對話會結束,如果有 result 可用,則元件對話方塊會使用該對話方塊做為傳回值。
end_component
end_dialog
對話框結束時呼叫。
async end_dialog(context: TurnContext, instance: DialogInstance, reason: DialogReason) -> None
參數
| 名稱 | Description |
|---|---|
|
context
必要
|
這個回合的內容物件。 |
|
instance
必要
|
與此元件對話框實例相關聯的狀態資訊。 |
|
reason
必要
|
對話框結束的原因。 |
find_dialog
依標識碼尋找對話框。
async find_dialog(dialog_id: str) -> Dialog
參數
| 名稱 | Description |
|---|---|
|
dialog_id
必要
|
要新增的對話框。 |
傳回
| 類型 | Description |
|---|---|
|
對話框;如果標識符不相符,則為 [無]。 |
on_begin_dialog
啟動對話框並推送至父代對話堆棧時呼叫。
async on_begin_dialog(inner_dc: DialogContext, options: object) -> DialogTurnResult
參數
| 名稱 | Description |
|---|---|
|
inner_dc
必要
|
目前交談回合的內部對話內容。 |
|
options
必要
|
要傳遞至對話框的選擇性初始資訊。 |
備註
如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。
根據預設,這會呼叫元件對話框初始對話框的 begin_dialog 方法。
覆寫衍生類別中的這個方法,以實作中斷邏輯。
on_continue_dialog
在繼續對話時呼叫,其中為使用中的對話框,而使用者會以新的活動回復。
async on_continue_dialog(inner_dc: DialogContext) -> DialogTurnResult
參數
| 名稱 | Description |
|---|---|
|
inner_dc
必要
|
目前交談回合的內部對話內容。 |
on_end_dialog
結束其父系內容中的元件對話框。
async on_end_dialog(context: TurnContext, instance: DialogInstance, reason: DialogReason) -> None
參數
| 名稱 | Description |
|---|---|
|
turn_context
必要
|
交談目前回合的 TurnContext。 |
|
instance
必要
|
與此元件對話框內部對話堆疊相關聯的狀態資訊。 |
|
reason
必要
|
對話框結束的原因。 |
|
context
必要
|
|
on_reprompt_dialog
async on_reprompt_dialog(turn_context: TurnContext, instance: DialogInstance) -> None
參數
| 名稱 | Description |
|---|---|
|
turn_context
必要
|
交談目前回合的 TurnContext。 |
|
instance
必要
|
與此元件對話框內部對話堆疊相關聯的狀態資訊。 |
reprompt_dialog
當對話框應該重新提示使用者輸入時呼叫。
async reprompt_dialog(context: TurnContext, instance: DialogInstance) -> None
參數
| 名稱 | Description |
|---|---|
|
context
必要
|
這個回合的內容物件。 |
|
instance
必要
|
此對話框的狀態資訊。 |
resume_dialog
當父代對話堆疊上的子對話完成這個回合時呼叫,將控制權傳回給這個對話元件。
async resume_dialog(dialog_context: DialogContext, reason: DialogReason, result: object = None) -> DialogTurnResult
參數
| 名稱 | Description |
|---|---|
|
dialog_context
必要
|
交談目前回合的對話內容。 |
|
reason
必要
|
對話繼續的原因。 |
|
result
|
選擇性值,從呼叫的對話框傳回的值。 預設值: None
|
傳回
| 類型 | Description |
|---|---|
|
發出回合結尾的訊號 |
備註
容器通常是堆棧上的分葉節點,但開發人員可以自由地將其他對話框推送到堆疊頂端,這會導致容器在對話結束時收到非預期的呼叫 resume_dialog。 若要避免容器過早結束,我們需要實作此方法,並只要求內部對話堆疊重新提示。
屬性
persisted_dialog_state
persisted_dialog_state = 'dialogs'