Compartilhar via


IDialog<TResult> Interface

Definição

Um IDialog<TResult> é um processo de conversa suspendível que produz um resultado do tipo TResult.

public interface IDialog<out TResult>
type IDialog<'Result> = interface
Public Interface IDialog(Of Out TResult)

Parâmetros de tipo

TResult

O tipo de resultado.

Este parâmetro de tipo é covariante. Isso significa que é possível usar o tipo especificado ou qualquer tipo mais derivado. Para obter mais informações sobre covariância e contravariância, consulte Covariância e contravariância em genéricos.
Derivado

Comentários

As caixas de diálogo podem chamar caixas de diálogo filho ou enviar mensagens para um usuário. As caixas de diálogo são suspensas ao aguardar uma mensagem do usuário para o bot. As caixas de diálogo são retomadas quando o bot recebe uma mensagem do usuário.

Métodos

StartAsync(IDialogContext)

O início do código que representa a caixa de diálogo de conversa.

Métodos de Extensão

Catch<T>(IDialog<T>, Func<IDialog<T>,Exception,IDialog<T>>)

Quando a antecessora IDialog<TResult> for concluída, capture e manipule as exceções.

Catch<T,E>(IDialog<T>, Func<IDialog<T>,E,IDialog<T>>)

Quando a antecessora IDialog<TResult> for concluída, capture e manipule quaisquer exceções do tipo E.

ContinueWith<T,R>(IDialog<T>, Chain.Continuation<T,R>)

Quando a antecessora IDialog<TResult> for concluída, execute a continuação para produzir o próximo IDialog<TResult>.

DefaultIfException<T>(IDialog<T>)

Quando a antecessora IDialog<TResult> for concluída, interrompa a propagação de Exception.

DefaultIfException<T,E>(IDialog<T>)

Quando a antecessora IDialog<TResult> for concluída, interrompa a propagação de uma exceção de E.

Do<T>(IDialog<T>, Func<IBotContext,IAwaitable<T>,Task>)

Execute um efeito colateral após a conclusão de um IDialog<TResult> .

Loop<T>(IDialog<T>)

Faça loop do IDialog<TResult> para sempre.

PostEvent<T,E>(IDialog<T>, E)

Quando a antecessora IDialog<TResult> for concluída, poste o item na fila de eventos.

PostToUser<T>(IDialog<T>)

Poste para o usuário o resultado de um IDialog<TResult>.

Select<T,R>(IDialog<T>, Func<T,R>)

Quando a antecessora IDialog<TResult> for concluída, projeto o resultado em um novo IDialog<TResult>.

SelectMany<T,C,R>(IDialog<T>, Func<T,IDialog<C>>, Func<T,C,R>)

Quando a antecessora IDialog<TResult> for concluída, execute o próximo IDialog<TResult>e use a projeção para combinar os resultados.

Switch<T,R>(IDialog<T>, ICase<T,R>[])

Quando a antecessora IDialog<TResult> for concluída, passe por cada ICase<T,R> e execute o ContextualSelector<T,R>" do primeiro ICase<T,R> que o valor retornado pela caixa de diálogo anterior satisfaz.

Then<T,R>(IDialog<T>, Func<IBotContext,IAwaitable<T>,Task<R>>)

Execute uma ação após a IDialog<TResult> conclusão.

Void<T>(IDialog<T>, IDialogStack)

Chame o anulado IDialog<TResult>, ignore o resultado e reinicie a espera da caixa de diálogo original.

Void<T,R>(IDialog<T>)

Chame o anulado IDialog<TResult>, ignore o resultado e reinicie a espera da caixa de diálogo original.

WaitToBot<T>(IDialog<T>)

Poste na cadeia a mensagem para o bot após a conclusão do antecessor.

Where<T>(IDialog<T>, Func<T,Boolean>)

Quando o antecessor IDialog<TResult> for concluído, avalie o predicado e decida se deseja continuar.

While<T>(IDialog<T>, Func<T,IDialog<Boolean>>, Func<T,IDialog<T>>)

Crie um IDialog<TResult> que representa um loop while.

WithScorable<T,Item,Score>(IDialog<T>, IScorable<Item,Score>)

Decore uma caixa de diálogo com um escorável para que um scorable possa participar da pilha de diálogos.

Aplica-se a