Partager via


IDialog<TResult> Interface

Définition

Un IDialog<TResult> est un processus conversationnel suspendable qui produit un résultat de type TResult.

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

Paramètres de type

TResult

Type de résultat.

Ce paramètre de type est covariant. Cela signifie que vous pouvez utiliser le type spécifié ou tout type plus dérivé. Pour plus d’informations sur la covariance et la contravariance, consultez Covariance et contravariance dans les génériques.
Dérivé

Remarques

Les dialogues peuvent appeler des dialogues enfants ou envoyer des messages à un utilisateur. Les boîtes de dialogue sont suspendues lors de l’attente d’un message de l’utilisateur au bot. Les dialogues sont repris lorsque le bot reçoit un message de l’utilisateur.

Méthodes

StartAsync(IDialogContext)

Début du code qui représente la boîte de dialogue conversationnelle.

Méthodes d’extension

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

Une fois l’antécédent IDialog<TResult> terminé, interceptez et gérez les exceptions.

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

Une fois l’antécédent IDialog<TResult> terminé, interceptez et gérez toutes les exceptions de type E.

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

Une fois l’antécédent IDialog<TResult> terminé, exécutez la continuation pour produire le suivant IDialog<TResult>.

DefaultIfException<T>(IDialog<T>)

Une fois l’antécédent IDialog<TResult> terminé, arrêtez la propagation de l’exception.

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

Une fois l’antécédent IDialog<TResult> terminé, arrêtez la propagation d’une exception de E.

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

Exécutez un effet secondaire une fois qu’un est IDialog<TResult> terminé.

Loop<T>(IDialog<T>)

Bouclez le IDialog<TResult> pour toujours.

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

Une fois l’antécédent IDialog<TResult> terminé, publiez l’élément dans la file d’attente des événements.

PostToUser<T>(IDialog<T>)

Publiez sur l’utilisateur le résultat d’un IDialog<TResult>.

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

Une fois l’antécédent IDialog<TResult> terminé, projetez le résultat dans un nouveau IDialog<TResult>.

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

Une fois l’antécédent IDialog<TResult> terminé, exécutez le suivant IDialog<TResult>et utilisez la projection pour combiner les résultats.

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

Une fois l’antécédent IDialog<TResult> terminé, parcourez chacun ICase<T,R> d’eux et exécutez le ContextualSelector<T,R>« de la première ICase<T,R> que la valeur retournée par le dialogue antécédent satisfait.

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

Exécutez une action une fois la IDialog<TResult> commande terminée.

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

Appelez le voided IDialog<TResult>, ignorez le résultat, puis redémarrez la boîte de dialogue d’origine en attente.

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

Appelez le voided IDialog<TResult>, ignorez le résultat, puis redémarrez la boîte de dialogue d’origine en attente.

WaitToBot<T>(IDialog<T>)

Publiez dans la chaîne le message sur le bot une fois l’antécédent terminé.

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

Une fois l’antécédent IDialog<TResult> terminé, évaluez le prédicat et décidez de continuer.

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

Créez un IDialog<TResult> qui représente une boucle while.

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

Décorez un dialogue avec un scorable, afin qu’un scorable puisse participer à la pile des dialogues.

S’applique à