Freigeben über


DialogContext class

Der Kontext für das aktuelle Dialogfeld dreht sich in Bezug auf ein bestimmtes DialogSet-.

Hinweise

Dazu gehören der Turnkontext, Informationen zum Dialogfeldsatz und der Status des Dialogstapels.

Verwenden Sie DialogSet.createContext- von Code außerhalb eines Dialogfelds, um den Dialogkontext zu erstellen. Verwenden Sie dann die Methoden des Dialogfeldkontexts, um den Verlauf von Dialogfeldern in der Gruppe zu verwalten.

Wenn Sie ein Dialogfeld implementieren, ist der Dialogfeldkontext ein Parameter, der für die verschiedenen Methoden verfügbar ist, die Sie außer Kraft setzen oder implementieren.

Zum 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 die Drehung ab.

dialogManager
dialogs

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

parent

Der übergeordnete Dialogfeldkontext für diesen Dialogfeldkontext oder undefined, wenn dieser Kontext nicht über ein übergeordnetes Element verfügt.

services

Ruft die Dienstauflistung ab, die kontextbezogen mit diesem Dialogfeldkontext 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 verschiebt sie auf den Dialogstapel. Erstellt eine neue Instanz des Dialogfelds und verschiebt sie auf den Stapel.

cancelAllDialogs(boolean, string, any)

Bricht alle Dialogfelder im Dialogfeldstapel ab und löscht Stapel.

continueDialog()

Setzt die Ausführung des aktiven Dialogfelds fort, falls vorhanden, durch Übergeben dieses Dialogfeldkontexts an die Dialog.continueDialog-Methode.

emitEvent(string, any, boolean, boolean)

Sucht nach einem Dialogfeld mit einer bestimmten ID.

endDialog(any)

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

findDialog(string)

Sucht nach einem Dialogfeld mit einer bestimmten ID.

getLocale()

Rufen Sie die CultureInfo in DialogContext ab.

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

Hilfsfunktion zum Vereinfachen der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.

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

Hilfsfunktion zum Vereinfachen der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.

replaceDialog(string, object)

Beendet das aktive Dialogfeld und startet ein neues Dialogfeld an seiner Stelle.

repromptDialog()

Fordert das aktive Dialogfeld an, 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

Die DialogSet-, für die der Dialogfeldkontext erstellt werden soll.

contextOrDC
DialogContext

Das TurnContext Objekt für die aktuelle Drehung des Bots.

state
DialogState

Das Zustandsobjekt, das zum Lesen und Schreiben DialogState- zum Speichern verwendet werden soll.

Hinweise

Durch Das Übergeben eines DialogContext- Instanz wird der Dialogfeldkontext geklont.

DialogContext(DialogSet, TurnContext, DialogState)

Erstellt eine neue Instanz der DialogContext Klasse.

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

Parameter

dialogs
DialogSet

Die DialogSet-, für die der Dialogfeldkontext erstellt werden soll.

contextOrDC

TurnContext

Das TurnContext Objekt für die aktuelle Drehung des Bots.

state
DialogState

Das Zustandsobjekt, das zum Lesen und Schreiben DialogState- zum Speichern verwendet werden soll.

Hinweise

Durch Das Übergeben eines DialogContext- Instanz wird der Dialogfeldkontext geklont.

Details zur Eigenschaft

activeDialog

DialogInstance | undefined activeDialog

Eigenschaftswert

DialogInstance | undefined

Die Statusinformationen für das Dialogfeld oben im Dialogfeldstapel oder undefined, wenn der Stapel leer ist.

child

DialogContext | undefined child

Eigenschaftswert

DialogContext | undefined

Dialogfeldkontext für untergeordnete Elemente, wenn das aktive Dialogfeld ein Container ist.

context

Ruft das Kontextobjekt für die Drehung 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 Dialogfelder ab, die direkt aus diesem Kontext aufgerufen werden können.

dialogs: DialogSet

Eigenschaftswert

parent

Der übergeordnete Dialogfeldkontext für diesen Dialogfeldkontext oder undefined, wenn dieser Kontext nicht über ein übergeordnetes Element verfügt.

parent: DialogContext | undefined

Eigenschaftswert

DialogContext | undefined

Hinweise

Wenn versucht wird, ein Dialogfeld zu starten, sucht der Dialogfeldkontext in den Dialogfeldernnach dem Dialog.id. Wenn das zu startende Dialogfeld in diesem Dialogfeldkontext nicht gefunden wird, sucht es im übergeordneten Dialogfeldkontext usw.

services

Ruft die Dienstauflistung ab, die kontextbezogen mit diesem Dialogfeldkontext 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 verschiebt sie auf den Dialogstapel. Erstellt eine neue Instanz des Dialogfelds und verschiebt sie auf den Stapel.

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

Parameter

dialogId

string

ID des zu startenden Dialogfelds.

options

object

Wahlfrei. Argumente, die beim Start in das Dialogfeld übergeben werden sollen.

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.

Hinweise

Wenn bereits ein aktives Dialogfeld im Stapel vorhanden ist, wird dieses Dialogfeld angehalten, bis es wieder das obere Dialogfeld im Stapel ist.

Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels, nachdem diese Methode abgeschlossen wurde.

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

Zum Beispiel:

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

Siehe auch

cancelAllDialogs(boolean, string, any)

Bricht alle Dialogfelder im Dialogfeldstapel ab und löscht Stapel.

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

Parameter

cancelParents

boolean

Wahlfrei. Wenn true alle übergeordneten Dialogfelder ebenfalls abgebrochen werden.

eventName

string

Wahlfrei. Der Name eines benutzerdefinierten Ereignisses, das als Dialogfelder ausgelöst werden soll, wird abgebrochen. Dies wird standardmäßig auf cancelDialog-festgelegt.

eventValue

any

Wahlfrei. Wert, der zusammen mit einem benutzerdefinierten Abbruchereignis übergeben werden soll.

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.

Hinweise

Dadurch wird die Dialog.endDialog-Methode jedes Dialogfelds aufgerufen, bevor das Dialogfeld aus dem Stapel entfernt wird.

Wenn anfänglich Dialogfelder im Stapel vorhanden waren, wird der Status des Rückgabewerts abgebrochen; andernfalls ist es leer.

In diesem Beispiel wird ein Dialogfeldstapel gelöscht, dc, bevor ein Dialogfeld "bookFlight" gestartet wird.

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

Siehe auch

continueDialog()

Setzt die Ausführung des aktiven Dialogfelds fort, falls vorhanden, durch Übergeben dieses Dialogfeldkontexts an die Dialog.continueDialog-Methode.

function continueDialog(): Promise<DialogTurnResult>

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.

Hinweise

Nach Abschluss des Aufrufs können Sie die des Turnkontexts Eigenschaft ü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, nachdem diese Methode abgeschlossen wurde.

In der Regel würden Sie dies innerhalb des Turnhandlers Ihres Bots aufrufen.

Zum 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 bestimmten ID.

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

Parameter

name

string

Der Name des ereignisses, das ausgelöst werden soll.

value

any

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

bubble

boolean

Wahlfrei. Kennzeichnen Sie, um zu steuern, ob das Ereignis an das übergeordnete Element übergeben werden soll, wenn es nicht lokal behandelt wird. Der Standardwert ist ein Wert von true.

fromLeaf

boolean

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

Gibt zurück

Promise<boolean>

true, ob das Ereignis behandelt wurde.

Hinweise

Gibt ein benanntes Ereignis für das aktuelle Dialogfeld oder eine Person aus, die es gestartet hat, um dies zu behandeln.

endDialog(any)

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

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

Parameter

result

any

Wahlfrei. Ein Ergebnis, das an die übergeordnete Logik übergeben werden soll. Dies kann das nächste Dialogfeld im Stapel sein, oder wenn es sich um das letzte Dialogfeld im Stapel, einen übergeordneten Dialogkontext oder den Turnhandler des Bots handelt.

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.

Hinweise

Das dialogfeld übergeordneten ist das nächste Dialogfeld im Dialogstapel, falls vorhanden. Diese Methode ruft die Dialog.resumeDialog-Methode des übergeordneten Elements auf und übergibt das vom endeden Dialogfeld zurückgegebene Ergebnis. Wenn kein übergeordnetes Dialogfeld vorhanden ist, endet die Drehung, und das Ergebnis steht dem Bot über das Ergebnis des zurückgegebenen Objekts Eigenschaft zur Verfügung.

Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels, nachdem diese Methode abgeschlossen wurde.

In der Regel würden Sie dies aus der Logik für ein bestimmtes Dialogfeld aufrufen, um wieder in den Dialogkontext zurückzukehren, den das Dialogfeld abgeschlossen hat, das Dialogfeld sollte aus dem Stapel entfernt werden, und das übergeordnete Dialogfeld sollte fortgesetzt werden.

Zum Beispiel:

return await dc.endDialog(returnValue);

Siehe auch

findDialog(string)

Sucht nach einem Dialogfeld mit einer bestimmten 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 im DialogSet diesem Dialogfeldkontext nicht gefunden wird, wird versucht, das Dialogfeld im übergeordneten Dialogfeldkontext zu finden.

Siehe auch

getLocale()

Rufen Sie die CultureInfo in DialogContext ab.

function getLocale(): string

Gibt zurück

string

eine Gebietsschemazeichenfolge.

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

Hilfsfunktion zum Vereinfachen der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.

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

Parameter

dialogId

string

ID des zu startenden Eingabeaufforderungsdialogfelds.

promptOrOptions

string | Partial<Activity> | PromptOptions

Der Text der anfänglichen Eingabeaufforderung, um den Benutzer zu senden, 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 zum Vereinfachen 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 zu startenden Eingabeaufforderungsdialogfelds.

promptOrOptions

string | Partial<Activity> | PromptOptions

Der Text der ersten Eingabeaufforderung, die der Benutzer senden soll, die Aktivität, die als erste Eingabeaufforderung gesendet werden soll, oder das Objekt, mit dem das Eingabeaufforderungsdialogfeld formatiert werden soll.

choices

string | Choice[]

Wahlfrei. Array von Auswahlmöglichkeiten für den Benutzer, für die 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 das aktive Dialogfeld und startet ein neues Dialogfeld an seiner Stelle.

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

Parameter

dialogId

string

ID des zu startenden Dialogfelds.

options

object

Wahlfrei. Argumente, die beim Start in das neue Dialogfeld übergeben werden sollen.

Gibt zurück

Promise<DialogTurnResult>

eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.

Hinweise

Dies ist besonders hilfreich, um eine Schleife zu erstellen oder an ein anderes Dialogfeld umzuleiten.

Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels, nachdem diese Methode abgeschlossen wurde.

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

Siehe auch

repromptDialog()

Fordert das aktive Dialogfeld an, den Benutzer erneut zur Eingabe aufzufordern.

function repromptDialog(): Promise<void>

Gibt zurück

Promise<void>

Hinweise

Dadurch wird die repromptDialog Methode des aktiven Dialogfelds aufgerufen.

Zum Beispiel:

await dc.repromptDialog();