Compartilhar via


DialogContext class

O contexto da caixa de diálogo atual gira em relação a um DialogSet específico.

Comentários

Isso inclui o contexto de turno, informações sobre o conjunto de diálogos e o estado da pilha de diálogos.

No código fora de uma caixa de diálogo no conjunto, use DialogSet.createContext para criar o contexto da caixa de diálogo. Em seguida, use os métodos do contexto da caixa de diálogo para gerenciar a progressão de diálogos no conjunto.

Quando você implementa uma caixa de diálogo, o contexto da caixa de diálogo é um parâmetro disponível para os vários métodos que você substitui ou implementa.

Por exemplo:

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

Construtores

DialogContext(DialogSet, DialogContext, DialogState)

Cria uma nova instância da classe DialogContext .

DialogContext(DialogSet, TurnContext, DialogState)

Cria uma nova instância da classe DialogContext .

Propriedades

activeDialog
child
context

Obtém o objeto de contexto para a curva.

dialogManager
dialogs

Obtém as caixas de diálogo que podem ser chamadas diretamente desse contexto.

parent

O contexto da caixa de diálogo pai para esse contexto de caixa de diálogo ou undefined se esse contexto não tiver um pai.

services

Obtém a coleção de serviços que é contextual para esse contexto de caixa de diálogo.

stack

Obtém a pilha de diálogo atual.

state

Obtém o DialogStateManager que gerencia a exibição de todos os escopos de memória.

Métodos

beginDialog(string, object)

Inicia uma instância de caixa de diálogo e a envia por push para a pilha de diálogos. Cria uma nova instância da caixa de diálogo e a envia por push para a pilha.

cancelAllDialogs(boolean, string, any)

Cancela todas as caixas de diálogo na pilha de diálogos e limpa a pilha.

continueDialog()

Continua a execução da caixa de diálogo ativa, se houver uma, passando esse contexto de caixa de diálogo para o método Dialog.continueDialog .

emitEvent(string, any, boolean, boolean)

Pesquisa uma caixa de diálogo com uma determinada ID.

endDialog(any)

Encerra uma caixa de diálogo e a remove da pilha. Retorna um resultado opcional para o pai da caixa de diálogo.

findDialog(string)

Pesquisa uma caixa de diálogo com uma determinada ID.

getLocale()

Obtenha CultureInfo em DialogContext.

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

Função auxiliar para simplificar a formatação das opções para chamar uma caixa de diálogo de prompt.

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

Função auxiliar para simplificar a formatação das opções para chamar uma caixa de diálogo de prompt.

replaceDialog(string, object)

Encerra a caixa de diálogo ativa e inicia uma nova caixa de diálogo em seu lugar.

repromptDialog()

Solicita que a caixa de diálogo ativa solicite novamente a entrada do usuário.

Detalhes do construtor

DialogContext(DialogSet, DialogContext, DialogState)

Cria uma nova instância da classe DialogContext .

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

Parâmetros

dialogs
DialogSet

O DialogSet para o qual criar o contexto da caixa de diálogo.

contextOrDC
DialogContext

O objeto TurnContext para a virada atual do bot.

state
DialogState

O objeto de estado a ser usado para ler e gravar DialogState no armazenamento.

Comentários

Passar uma instância dialogContext clonará o contexto da caixa de diálogo.

DialogContext(DialogSet, TurnContext, DialogState)

Cria uma nova instância da classe DialogContext .

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

Parâmetros

dialogs
DialogSet

O DialogSet para o qual criar o contexto da caixa de diálogo.

contextOrDC

TurnContext

O objeto TurnContext para a virada atual do bot.

state
DialogState

O objeto de estado a ser usado para ler e gravar DialogState no armazenamento.

Comentários

Passar uma instância dialogContext clonará o contexto da caixa de diálogo.

Detalhes da propriedade

activeDialog

DialogInstance | undefined activeDialog

Valor da propriedade

DialogInstance | undefined

As informações de estado da caixa de diálogo na parte superior da pilha de diálogo ou undefined se a pilha estiver vazia.

child

DialogContext | undefined child

Valor da propriedade

DialogContext | undefined

Contexto da caixa de diálogo para filho se a caixa de diálogo ativa for um contêiner.

context

Obtém o objeto de contexto para a curva.

context: TurnContext

Valor da propriedade

TurnContext

dialogManager

Aviso

Essa API foi preterida.

This property serves no function.

DialogManager dialogManager

Valor da propriedade

A instância atual do gerenciador de diálogos. Essa propriedade é preterida.

dialogs

Obtém as caixas de diálogo que podem ser chamadas diretamente desse contexto.

dialogs: DialogSet

Valor da propriedade

parent

O contexto da caixa de diálogo pai para esse contexto de caixa de diálogo ou undefined se esse contexto não tiver um pai.

parent: DialogContext | undefined

Valor da propriedade

DialogContext | undefined

Comentários

Quando ele tenta iniciar uma caixa de diálogo, o contexto da caixa de diálogo pesquisa o Dialog.id em seus diálogos. Se a caixa de diálogo a ser iniciada não for encontrada nesse contexto de caixa de diálogo, ela pesquisa em seu contexto de diálogo pai e assim por diante.

services

Obtém a coleção de serviços que é contextual para esse contexto de caixa de diálogo.

services: TurnContextStateCollection

Valor da propriedade

TurnContextStateCollection

stack

Obtém a pilha de diálogo atual.

stack: DialogInstance[]

Valor da propriedade

state

Obtém o DialogStateManager que gerencia a exibição de todos os escopos de memória.

state: DialogStateManager

Valor da propriedade

Detalhes do método

beginDialog(string, object)

Inicia uma instância de caixa de diálogo e a envia por push para a pilha de diálogos. Cria uma nova instância da caixa de diálogo e a envia por push para a pilha.

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

Parâmetros

dialogId

string

ID da caixa de diálogo a ser iniciada.

options

object

Opcional. Argumentos a serem passados para a caixa de diálogo quando ela for iniciada.

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado do turno da caixa de diálogo.

Comentários

Se já houver uma caixa de diálogo ativa na pilha, essa caixa de diálogo será pausada até que seja novamente a caixa de diálogo superior na pilha.

O status do objeto retornado descreve o status da pilha de diálogos após a conclusão desse método.

Esse método gerará uma exceção se a caixa de diálogo solicitada não puder ser encontrada neste contexto de caixa de diálogo ou em qualquer um de seus ancestrais.

Por exemplo:

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

Consulte também

cancelAllDialogs(boolean, string, any)

Cancela todas as caixas de diálogo na pilha de diálogos e limpa a pilha.

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

Parâmetros

cancelParents

boolean

Opcional. Se true todas as caixas de diálogo pai também forem canceladas.

eventName

string

Opcional. Nome de um evento personalizado a ser acionado conforme as caixas de diálogo são canceladas. Esse padrão é cancelDialog.

eventValue

any

Opcional. Valor a ser passado com o evento de cancelamento personalizado.

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado do turno da caixa de diálogo.

Comentários

Isso chama o método Dialog.endDialog de cada caixa de diálogo antes de remover a caixa de diálogo da pilha.

Se houver alguma caixa de diálogo na pilha inicialmente, o status do valor retornado será cancelado; caso contrário, ele está vazio.

Este exemplo limpa uma pilha de diálogos, dc, antes de iniciar uma caixa de diálogo 'bookFlight'.

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

Consulte também

continueDialog()

Continua a execução da caixa de diálogo ativa, se houver uma, passando esse contexto de caixa de diálogo para o método Dialog.continueDialog .

function continueDialog(): Promise<DialogTurnResult>

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado do turno da caixa de diálogo.

Comentários

Após a conclusão da chamada, você pode verificar a propriedade respondida do contexto de turno para determinar se a caixa de diálogo enviou uma resposta ao usuário.

O status do objeto retornado descreve o status da pilha de diálogos após a conclusão desse método.

Normalmente, você chamaria isso de dentro do manipulador de turnos do bot.

Por exemplo:

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)

Pesquisa uma caixa de diálogo com uma determinada ID.

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

Parâmetros

name

string

Nome do evento para gerar.

value

any

Opcional. Valor a ser enviado junto com o evento .

bubble

boolean

Opcional. Sinalizador para controlar se o evento deve ser colocado em bolhas para seu pai se não for manipulado localmente. O padrão é um valor de true.

fromLeaf

boolean

Opcional. Se o evento é emitido de um nó folha.

Retornos

Promise<boolean>

true se o evento foi tratado.

Comentários

Emite um evento nomeado para a caixa de diálogo atual, ou alguém que o iniciou, para manipular.

endDialog(any)

Encerra uma caixa de diálogo e a remove da pilha. Retorna um resultado opcional para o pai da caixa de diálogo.

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

Parâmetros

result

any

Opcional. Um resultado a ser passado para a lógica pai. Essa pode ser a próxima caixa de diálogo na pilha ou se essa foi a última caixa de diálogo na pilha, um contexto de caixa de diálogo pai ou o manipulador de turnos do bot.

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado do turno da caixa de diálogo.

Comentários

A caixa de diálogo pai será a próxima caixa de diálogo na pilha de diálogos, se houver uma. Esse método chama o método Dialog.resumeDialog do pai, passando o resultado retornado pela caixa de diálogo final. Se não houver nenhuma caixa de diálogo pai, a curva será encerrada e o resultado estará disponível para o bot por meio da propriedade de resultado do objeto retornado.

O status do objeto retornado descreve o status da pilha de diálogos após a conclusão desse método.

Normalmente, você chamaria isso de dentro da lógica para uma caixa de diálogo específica sinalizar de volta para o contexto da caixa de diálogo que a caixa de diálogo concluiu, a caixa de diálogo deve ser removida da pilha e a caixa de diálogo pai deve ser retomada.

Por exemplo:

return await dc.endDialog(returnValue);

Consulte também

findDialog(string)

Pesquisa uma caixa de diálogo com uma determinada ID.

function findDialog(dialogId: string): Dialog | undefined

Parâmetros

dialogId

string

ID da caixa de diálogo a ser pesquisada.

Retornos

Dialog | undefined

A caixa de diálogo para a ID fornecida.

Comentários

Se a caixa de diálogo a ser iniciada não for encontrada no DialogSet associado a esse contexto de caixa de diálogo, ele tentará localizar a caixa de diálogo em seu contexto de caixa de diálogo pai.

Consulte também

getLocale()

Obtenha CultureInfo em DialogContext.

function getLocale(): string

Retornos

string

uma cadeia de caracteres de localidade.

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

Função auxiliar para simplificar a formatação das opções para chamar uma caixa de diálogo de prompt.

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

Parâmetros

dialogId

string

ID da caixa de diálogo de prompt a ser iniciada.

promptOrOptions

string | Partial<Activity> | PromptOptions

O texto do prompt inicial para enviar o usuário, a atividade a ser enviada como o prompt inicial ou o objeto com o qual formatar a caixa de diálogo de prompt.

Retornos

Promise<DialogTurnResult>

Comentários

Esse método auxiliar formata o objeto a ser usado como o options parâmetro e, em seguida, chama beginDialog para iniciar a caixa de diálogo de prompt especificada.

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

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

Função auxiliar para simplificar a formatação das opções para chamar uma caixa de diálogo de prompt.

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

Parâmetros

dialogId

string

ID da caixa de diálogo de prompt a ser iniciada.

promptOrOptions

string | Partial<Activity> | PromptOptions

O texto do prompt inicial para enviar o usuário, a Atividade a ser enviada como o prompt inicial ou o objeto com o qual formatar a caixa de diálogo de prompt.

choices

string | Choice[]

Opcional. Matriz de opções para o usuário escolher, para uso com um ChoicePrompt.

Retornos

Promise<DialogTurnResult>

Comentários

Esse método auxiliar formata o objeto a ser usado como o options parâmetro e, em seguida, chama beginDialog para iniciar a caixa de diálogo de prompt especificada.

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

replaceDialog(string, object)

Encerra a caixa de diálogo ativa e inicia uma nova caixa de diálogo em seu lugar.

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

Parâmetros

dialogId

string

ID da caixa de diálogo a ser iniciada.

options

object

Opcional. Argumentos a serem passados para a nova caixa de diálogo quando ela for iniciada.

Retornos

Promise<DialogTurnResult>

uma promessa de resolução para o resultado do turno da caixa de diálogo.

Comentários

Isso é particularmente útil para criar um loop ou redirecionar para outra caixa de diálogo.

O status do objeto retornado descreve o status da pilha de diálogos após a conclusão desse método.

Esse método é semelhante a encerrar a caixa de diálogo atual e iniciar imediatamente o novo. No entanto, a caixa de diálogo pai não é retomada nem notificada de outra forma.

Consulte também

repromptDialog()

Solicita que a caixa de diálogo ativa solicite novamente a entrada do usuário.

function repromptDialog(): Promise<void>

Retornos

Promise<void>

Comentários

Isso chama o método repromptDialog da caixa de diálogo ativa.

Por exemplo:

await dc.repromptDialog();