Språk

IDialog<TResult> Gränssnitt

Definition

A IDialog<TResult> är en suspenderbar samtalsprocess som ger ett resultat av typ TResult.

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

Typparametrar

TResult

Resultattypen.

Det här är en covariant-typparameter. Det innebär att du kan använda antingen den typ du angett eller en typ som är mer härledd. Mer information om kovarians och kontravarians finns i Kovarians och kontravarians i Generisk typ.
Härledda

Kommentarer

Dialoger kan anropa barndialoger eller skicka meddelanden till en användare. Dialoger pausas när man väntar på ett meddelande från användaren till boten. Dialoger återupptas när boten tar emot ett meddelande från användaren.

Metoder

Name Description
StartAsync(IDialogContext)

Början på koden som representerar den samtalsmässiga dialogen.

Tilläggsmetoder

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

När antecedenten IDialog<TResult> har slutförts, fånga och hanterar eventuella undantag av typen E.

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

När föregångaren IDialog<TResult> har slutförts, fånga och hantera eventuella undantag.

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

När antecedenten IDialog<TResult> har fullbordats, kör fortsättningen för att producera nästa IDialog<TResult>.

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

När antecedenten IDialog<TResult> har fullbordats, stoppa utbredningen av ett undantag av E.

DefaultIfException<T>(IDialog<T>)

När antecedenten IDialog<TResult> är fullbordad, stoppa utbredningen av undantaget.

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

Utför en bieffekt efter att en IDialog<TResult> är klar.

Loop<T>(IDialog<T>)

Loop för IDialog<TResult> evigt.

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

När antecedenten IDialog<TResult> är klar, posta objektet i händelsekön.

PostToUser<T>(IDialog<T>)

Publicera till användaren resultatet av en IDialog<TResult>.

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

När antecedenten IDialog<TResult> har avslutats, projicera resultatet till en ny IDialog<TResult>.

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

När antecedenten IDialog<TResult> har slutförts, exekveras nästa IDialog<TResult>, och använd projektionen för att kombinera resultaten.

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

När antecedenten IDialog<TResult> har slutförts, gå igenom varje ICase<T,R> och kör ContextualSelector<T,R>" av den första ICase<T,R> som det returnerade värdet från antecedentdialogen uppfyller.

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

Utför en åtgärd efter att de IDialog<TResult> slutfört.

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

Anropa voided IDialog<TResult>, ignorera resultatet, och starta sedan om den ursprungliga dialogen vänta.

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

Anropa voided IDialog<TResult>, ignorera resultatet, och starta sedan om den ursprungliga dialogen vänta.

WaitToBot<T>(IDialog<T>)

Posta meddelandet till boten i kedjan efter att antecedenten är klar.

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

När antecedenten IDialog<TResult> är fullbordad, utvärdera predikatet och avgör om du ska fortsätta.

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

Skapa en IDialog<TResult> som representerar en while-loop.

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

Dekorera en dialog med en poängbar, så att en poängbar kan delta i dialogstacken.

Gäller för