Język

IDialog<TResult> Interfejs

Definicja

A IDialog<TResult> jest zawiesnym procesem konwersacyjnym, który daje wynik typu TResult.

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

Parametry typu

TResult

Typ wyniku

Ten parametr typu jest kowariantny. Oznacza to, że możesz użyć typu, który został przez Ciebie określony, lub dowolnego typu, który jest bardziej pochodny. Aby uzyskać więcej informacji o kowariancji i kontrawariancji, zobacz Kowariancja i kontrawariancja w typach ogólnych.
Pochodne

Uwagi

Dialogi mogą wywoływać dialogi poddane lub wysyłać wiadomości do użytkownika. Dialogi są zawieszane podczas oczekiwania na wiadomość od użytkownika do bota. Dialogi są wznawiane, gdy bot otrzymuje wiadomość od użytkownika.

Metody

Nazwa Opis
StartAsync(IDialogContext)

Początek kodu reprezentującego dialog konwersacyjny.

Metody rozszerzania

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

Gdy poprzednik IDialog<TResult> zostanie zakończony, złap i obsłuży wszelkie wyjątki typu E.

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

Gdy poprzednik IDialog<TResult> się zakończy, wykryj i obsłuży wszelkie wyjątki.

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

Gdy poprzednik IDialog<TResult> się zakończy, wykonaj kontynuację, aby uzyskać następne IDialog<TResult>.

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

Gdy poprzednik IDialog<TResult> zostanie zakończony, zatrzymaj propagację wyjątku .E

DefaultIfException<T>(IDialog<T>)

Gdy poprzednik IDialog<TResult> zostanie zakończony, zatrzymaj propagację wyjątku.

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

Wykonaj efekt uboczny po IDialog<TResult> zakończeniu.

Loop<T>(IDialog<T>)

Zapętlaj na IDialog<TResult> zawsze.

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

Gdy poprzednik IDialog<TResult> zostanie zakończony, umieść go w kolejce zdarzeń.

PostToUser<T>(IDialog<T>)

Opublikuj użytkownikowi wynik .IDialog<TResult>

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

Gdy poprzednik IDialog<TResult> zostanie ukończony, rzutujemy wynik do nowego IDialog<TResult>.

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

Gdy poprzednik IDialog<TResult> zostanie zakończony, wykonaj następne IDialog<TResult>, a następnie użyj projekcji do połączenia wyników.

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

Gdy poprzednik IDialog<TResult> się zakończy, przejdź przez każdy ICase<T,R> i uruchom " ContextualSelector<T,R>" pierwszego ICase<T,R> , którego wartość zwrócona przez dialog poprzednika spełnia.

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

Wykonaj akcję po IDialog<TResult> jej zakończeniu.

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

Zadzwoń do voided, IDialog<TResult>zignoruj wynik, a potem zrestartuj oryginalny dialog wait.

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

Zadzwoń do voided, IDialog<TResult>zignoruj wynik, a potem zrestartuj oryginalny dialog wait.

WaitToBot<T>(IDialog<T>)

Po zakończeniu poprzednika przesłaj wiadomość do bota do łańcucha.

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

Gdy poprzednik IDialog<TResult> się zakończy, oceń predykat i zdecyduj, czy kontynuować.

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

Stwórz taką IDialog<TResult> pętlę czasu.

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

Odekoruj dialog punktacją, aby przedmiot mógł uczestniczyć w stosie dialogowym.

Dotyczy