Freigeben über


DialogContext class

Der Kontext für den aktuellen Dialogwechsel in Bezug auf ein bestimmtes DialogSet.

Hinweise

Dies umfasst den Turnkontext, Informationen zum Dialogsatz und den Status des Dialogstapels.

Verwenden Sie aus Code außerhalb eines Dialogfelds in der Gruppe DialogSet.createContext , um den Dialogkontext zu erstellen. Verwenden Sie dann die Methoden des Dialogkontexts, um den Fortschritt von Dialogen in der Gruppe zu verwalten.

Wenn Sie einen Dialog implementieren, ist der Dialogkontext ein Parameter, der für die verschiedenen Methoden verfügbar ist, die Sie überschreiben oder implementieren.

Beispiel:

const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();

Konstruktoren

DialogContext(DialogSet, DialogContext, DialogState)

Erstellt eine neue Instanz der DialogContext-Klasse .

DialogContext(DialogSet, TurnContext, DialogState)

Erstellt eine neue Instanz der DialogContext-Klasse .

Eigenschaften

activeDialog
child
context

Ruft das Kontextobjekt für den Turn ab.

dialogManager
dialogs

Ruft die Dialoge ab, die direkt aus diesem Kontext aufgerufen werden können.

parent

Der übergeordnete Dialogkontext für diesen Dialogkontext, oder undefined , wenn dieser Kontext kein übergeordnetes Element aufweist.

services

Ruft die Dienstauflistung ab, die kontextbezogen mit diesem Dialogkontext ist.

stack

Ruft den aktuellen Dialogstapel ab.

state

Ruft den DialogStateManager ab, der die Ansicht aller Speicherbereiche verwaltet.

Methoden

beginDialog(string, object)

Startet eine Dialoginstanz und pusht sie auf den Dialogstapel. Erstellt eine neue Instanz des Dialogfelds und pusht sie auf den Stapel.

cancelAllDialogs(boolean, string, any)

Bricht alle Dialoge im Dialogstapel ab und löscht den Stapel.

continueDialog()

Setzt die Ausführung des aktiven Dialogs fort, sofern vorhanden, indem dieser Dialogkontext an die Dialog.continueDialog-Methode übergeben wird.

emitEvent(string, any, boolean, boolean)

Sucht nach einem Dialogfeld mit einer angegebenen ID.

endDialog(any)

Beendet ein Dialogfeld und öffnet es aus dem Stapel. Gibt ein optionales Ergebnis an das übergeordnete Ergebnis des Dialogfelds zurück.

findDialog(string)

Sucht nach einem Dialogfeld mit einer angegebenen ID.

getLocale()

Rufen Sie cultureInfo in DialogContext ab.

prompt(string, string | Partial<Activity> | PromptOptions)

Hilfsfunktion zur Vereinfachung der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

Hilfsfunktion zur Vereinfachung der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.

replaceDialog(string, object)

Beendet den aktiven Dialog und startet an seiner Stelle einen neuen Dialog.

repromptDialog()

Fordert den aktiven Dialog auf, den Benutzer erneut zur Eingabe aufzufordern.

Details zum Konstruktor

DialogContext(DialogSet, DialogContext, DialogState)

Erstellt eine neue Instanz der DialogContext-Klasse .

new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)

Parameter

dialogs
DialogSet

Das DialogSet , für das der Dialogkontext erstellt werden soll.

contextOrDC
DialogContext

Das TurnContext-Objekt für den aktuellen Turn des Bots.

state
DialogState

Das Zustandsobjekt, das zum Lesen und Schreiben von DialogState in den Speicher verwendet werden soll.

Hinweise

Wenn Sie eine DialogContext-Instanz übergeben, wird der Dialogkontext geklont.

DialogContext(DialogSet, TurnContext, DialogState)

Erstellt eine neue Instanz der DialogContext-Klasse .

new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)

Parameter

dialogs
DialogSet

Das DialogSet , für das der Dialogkontext erstellt werden soll.

contextOrDC

TurnContext

Das TurnContext-Objekt für den aktuellen Turn des Bots.

state
DialogState

Das Zustandsobjekt, das zum Lesen und Schreiben von DialogState in den Speicher verwendet werden soll.

Hinweise

Wenn Sie eine DialogContext-Instanz übergeben, wird der Dialogkontext geklont.

Details zur Eigenschaft

activeDialog

DialogInstance | undefined activeDialog

Eigenschaftswert

DialogInstance | undefined

Die Statusinformationen für den Dialog oben im Dialogstapel oder undefined , wenn der Stapel leer ist.

child

DialogContext | undefined child

Eigenschaftswert

DialogContext | undefined

Dialogkontext für untergeordnete Elemente, wenn der aktive Dialog ein Container ist.

context

Ruft das Kontextobjekt für den Turn ab.

context: TurnContext

Eigenschaftswert

TurnContext

dialogManager

Warnung

Diese API ist nun veraltet.

This property serves no function.

DialogManager dialogManager

Eigenschaftswert

Die aktuelle Dialog-Manager-Instanz. Diese Eigenschaft ist veraltet.

dialogs

Ruft die Dialoge ab, die direkt aus diesem Kontext aufgerufen werden können.

dialogs: DialogSet

Eigenschaftswert

parent

Der übergeordnete Dialogkontext für diesen Dialogkontext, oder undefined , wenn dieser Kontext kein übergeordnetes Element aufweist.

parent: DialogContext | undefined

Eigenschaftswert

DialogContext | undefined

Hinweise

Wenn versucht wird, einen Dialog zu starten, sucht der Dialogkontext nach dem Dialog.id in seinen Dialogfeldern. Wenn das zu startende Dialogfeld in diesem Dialogkontext nicht gefunden wird, sucht es im übergeordneten Dialogkontext usw.

services

Ruft die Dienstauflistung ab, die kontextbezogen mit diesem Dialogkontext ist.

services: TurnContextStateCollection

Eigenschaftswert

TurnContextStateCollection

stack

Ruft den aktuellen Dialogstapel ab.

stack: DialogInstance[]

Eigenschaftswert

state

Ruft den DialogStateManager ab, der die Ansicht aller Speicherbereiche verwaltet.

state: DialogStateManager

Eigenschaftswert

Details zur Methode

beginDialog(string, object)

Startet eine Dialoginstanz und pusht sie auf den Dialogstapel. Erstellt eine neue Instanz des Dialogfelds und pusht sie auf den Stapel.

function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>

Parameter

dialogId

string

ID des zu startenden Dialogfelds.

options

object

Optional. Argumente, die beim Start an das Dialogfeld übergeben werden sollen.

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.

Hinweise

Wenn bereits ein aktives Dialogfeld auf dem Stapel vorhanden ist, wird dieser Dialog angehalten, bis es wieder der obere Dialog im Stapel ist.

Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels nach Abschluss dieser Methode.

Diese Methode löst eine Ausnahme aus, wenn das angeforderte Dialogfeld nicht in diesem Dialogkontext oder in einem seiner Vorgänger gefunden werden kann.

Beispiel:

const result = await dc.beginDialog('greeting', { name: user.name });

Weitere Informationen

cancelAllDialogs(boolean, string, any)

Bricht alle Dialoge im Dialogstapel ab und löscht den Stapel.

function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>

Parameter

cancelParents

boolean

Optional. Wenn true auch alle übergeordneten Dialoge abgebrochen werden.

eventName

string

Optional. Name eines benutzerdefinierten Ereignisses, das ausgelöst werden soll, wenn Dialoge abgebrochen werden. Dies ist standardmäßig cancelDialog.

eventValue

any

Optional. Wert, der zusammen mit dem benutzerdefinierten Abbruchereignis übergeben werden soll.

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.

Hinweise

Dadurch wird die Dialog.endDialog-Methode der einzelnen Dialoge aufgerufen, bevor der Dialog aus dem Stapel entfernt wird.

Wenn anfänglich Dialoge auf dem Stapel vorhanden waren, wird der Status des Rückgabewerts abgebrochen. Andernfalls ist sie leer.

In diesem Beispiel wird der Dialogstapel gelöscht, dcbevor ein "bookFlight"-Dialogfeld gestartet wird.

await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');

Weitere Informationen

continueDialog()

Setzt die Ausführung des aktiven Dialogs fort, sofern vorhanden, indem dieser Dialogkontext an die Dialog.continueDialog-Methode übergeben wird.

function continueDialog(): Promise<DialogTurnResult>

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.

Hinweise

Nach Abschluss des Aufrufs können Sie die Antworteigenschaft des Turnkontexts überprüfen, um festzustellen, ob das Dialogfeld eine Antwort an den Benutzer gesendet hat.

Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels nach Abschluss dieser Methode.

In der Regel rufen Sie dies innerhalb des Turn-Handlers Ihres Bots auf.

Beispiel:

const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
    // Send fallback message
    await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}

emitEvent(string, any, boolean, boolean)

Sucht nach einem Dialogfeld mit einer angegebenen ID.

function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>

Parameter

name

string

Der Name des auszulösenden Ereignisses.

value

any

Optional. Wert, der zusammen mit dem Ereignis gesendet werden soll.

bubble

boolean

Optional. Flag, um zu steuern, ob das Ereignis in die Blase des übergeordneten Elements eingeblasen werden soll, wenn es nicht lokal behandelt wird. Der Standardwert trueist .

fromLeaf

boolean

Optional. Gibt an, ob das Ereignis von einem Blattknoten ausgegeben wird.

Gibt zurück

Promise<boolean>

true , wenn das Ereignis behandelt wurde.

Hinweise

Gibt ein benanntes Ereignis für den aktuellen Dialog oder eine Person aus, die es gestartet hat, um es zu behandeln.

endDialog(any)

Beendet ein Dialogfeld und öffnet es aus dem Stapel. Gibt ein optionales Ergebnis an das übergeordnete Ergebnis des Dialogfelds zurück.

function endDialog(result?: any): Promise<DialogTurnResult>

Parameter

result

any

Optional. Ein Ergebnis, das an die übergeordnete Logik übergeben werden soll. Dies kann der nächste Dialog im Stapel sein, oder wenn dies der letzte Dialog auf dem Stapel, ein übergeordneter Dialogkontext oder der Turn-Handler des Bots war.

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.

Hinweise

Der übergeordnete Dialog ist der nächste Dialog im Dialogstapel, sofern vorhanden. Diese Methode ruft die Dialog.resumeDialog-Methode des übergeordneten Elements auf und übergibt das vom Enddialogfeld zurückgegebene Ergebnis. Wenn kein übergeordnetes Dialogfeld vorhanden ist, endet der Turn, und das Ergebnis steht dem Bot über die Ergebniseigenschaft des zurückgegebenen Objekts zur Verfügung.

Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels nach Abschluss dieser Methode.

In der Regel rufen Sie dies aus der Logik für einen bestimmten Dialog auf, um dem Dialogkontext zu signalisieren, dass der Dialog abgeschlossen wurde, der Dialog aus dem Stapel entfernt und der übergeordnete Dialog fortgesetzt werden sollte.

Beispiel:

return await dc.endDialog(returnValue);

Weitere Informationen

findDialog(string)

Sucht nach einem Dialogfeld mit einer angegebenen ID.

function findDialog(dialogId: string): Dialog | undefined

Parameter

dialogId

string

ID des dialogfelds, nach dem gesucht werden soll.

Gibt zurück

Dialog | undefined

Das Dialogfeld für die angegebene ID.

Hinweise

Wenn das zu startende Dialogfeld nicht in dem DialogSet gefunden wird, das diesem Dialogkontext zugeordnet ist, versucht es, den Dialog in seinem übergeordneten Dialogkontext zu suchen.

Weitere Informationen

getLocale()

Rufen Sie cultureInfo in DialogContext ab.

function getLocale(): string

Gibt zurück

string

eine Gebietsschemazeichenfolge.

prompt(string, string | Partial<Activity> | PromptOptions)

Hilfsfunktion zur Vereinfachung der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.

function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>

Parameter

dialogId

string

ID des Eingabeaufforderungsdialogfelds zum Starten.

promptOrOptions

string | Partial<Activity> | PromptOptions

Der Text der anfänglichen Aufforderung zum Senden des Benutzers, die aktivität, die als erste Eingabeaufforderung gesendet werden soll, oder das Objekt, mit dem das Eingabeaufforderungsdialogfeld formatiert werden soll.

Gibt zurück

Promise<DialogTurnResult>

Hinweise

Diese Hilfsmethode formatiert das Objekt, das als options Parameter verwendet werden soll, und ruft dann beginDialog auf, um das angegebene Eingabeaufforderungsdialogfeld zu starten.

return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

Hilfsfunktion zur Vereinfachung der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.

function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>

Parameter

dialogId

string

ID des Eingabeaufforderungsdialogfelds zum Starten.

promptOrOptions

string | Partial<Activity> | PromptOptions

Der Text der anfänglichen Aufforderung zum Senden des Benutzers, die aktivität , die als anfängliche Eingabeaufforderung gesendet werden soll, oder das Objekt, mit dem das Eingabeaufforderungsdialogfeld formatiert werden soll.

choices

string | Choice[]

Optional. Array von Optionen, aus denen der Benutzer auswählen kann, zur Verwendung mit einem ChoicePrompt.

Gibt zurück

Promise<DialogTurnResult>

Hinweise

Diese Hilfsmethode formatiert das Objekt, das als options Parameter verwendet werden soll, und ruft dann beginDialog auf, um das angegebene Eingabeaufforderungsdialogfeld zu starten.

return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);

replaceDialog(string, object)

Beendet den aktiven Dialog und startet an seiner Stelle einen neuen Dialog.

function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>

Parameter

dialogId

string

ID des zu startenden Dialogfelds.

options

object

Optional. Argumente, die beim Start an das neue Dialogfeld übergeben werden sollen.

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Ergebnis des Dialogwechsels aufgelöst wird.

Hinweise

Dies ist besonders nützlich, um eine Schleife zu erstellen oder an einen anderen Dialog umzuleiten.

Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels nach Abschluss dieser Methode.

Diese Methode ähnelt dem Beenden des aktuellen Dialogs und dem sofortigen Starten des neuen Dialogfelds. Das übergeordnete Dialogfeld wird jedoch weder fortgesetzt noch anderweitig benachrichtigt.

Weitere Informationen

repromptDialog()

Fordert den aktiven Dialog auf, den Benutzer erneut zur Eingabe aufzufordern.

function repromptDialog(): Promise<void>

Gibt zurück

Promise<void>

Hinweise

Dadurch wird die repromptDialog-Methode des aktiven Dialogs aufgerufen.

Beispiel:

await dc.repromptDialog();