Udostępnij za pośrednictwem


IDialog<TResult> Interfejs

Definicja

A IDialog<TResult> to zawieszony proces konwersacyjny, który generuje 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

Okna dialogowe mogą wywoływać okna dialogowe podrzędne lub wysyłać komunikaty do użytkownika. Okna dialogowe są zawieszone podczas oczekiwania na komunikat od użytkownika do bota. Okna dialogowe są wznawiane po odebraniu przez bota komunikatu od użytkownika.

Metody

StartAsync(IDialogContext)

Początek kodu reprezentującego okno dialogowe konwersacji.

Metody rozszerzania

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

Po zakończeniu połowów i obsługi wszelkich wyjątków po zakończeniu wyłap IDialog<TResult> i obsłuż je.

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

Po zakończeniu po zakończeniu wyłap IDialog<TResult> i obsłuż wszelkie wyjątki typu E.

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

Po zakończeniu poprzednich IDialog<TResult> kroków wykonaj kontynuację, aby utworzyć następny IDialog<TResult>element .

DefaultIfException<T>(IDialog<T>)

Po zakończeniu poprzednika IDialog<TResult> zatrzymaj propagację wyjątku.

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

Po zakończeniu poprzednika IDialog<TResult> zatrzymaj propagację wyjątku .E

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

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

Loop<T>(IDialog<T>)

Pętla IDialog<TResult> na zawsze.

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

Po zakończeniu wyrażeń IDialog<TResult> opublikuj element w kolejce zdarzeń.

PostToUser<T>(IDialog<T>)

Opublikuj użytkownikowi wynik .IDialog<TResult>

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

Po zakończeniu działania poprzednika IDialog<TResult> przeprojektuj wynik w nowy IDialog<TResult>element .

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

Po zakończeniu poprzednich IDialog<TResult> kroków wykonaj następny IDialog<TResult>element i użyj projekcji, aby połączyć wyniki.

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

Po zakończeniu poprzednich IDialog<TResult> kroków przejdź przez każdą ICase<T,R> i uruchom ContextualSelector<T,R>wartość " pierwszego ICase<T,R> , że zwrócona wartość przez okno dialogowe poprzednika spełnia.

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

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

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

Wywołaj unieważniony IDialog<TResult>element , zignoruj wynik, a następnie uruchom ponownie oryginalne okno dialogowe.

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

Wywołaj unieważniony IDialog<TResult>element , zignoruj wynik, a następnie uruchom ponownie oryginalne okno dialogowe.

WaitToBot<T>(IDialog<T>)

Opublikuj w łańcuchu komunikat do bota po zakończeniu działania poprzednika.

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

Po zakończeniu poprzednika IDialog<TResult> oceń predykat i zdecyduj, czy kontynuować.

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

Utwórz pętlę IDialog<TResult> czasową, która reprezentuje pętlę czasową.

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

Udekoruj okno dialogowe z ozdobnym, dzięki czemu scorable może uczestniczyć w stosie okien dialogowych.

Dotyczy