Sdílet prostřednictvím


IDialog<TResult> Rozhraní

Definice

A IDialog<TResult> je pozastavitelný konverzační proces, který vytváří výsledek typu TResult.

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

Parametry typu

TResult

Typ výsledku.

Tento parametr typu je kovariantní. To znamená, že můžete použít buď zadaný typ, nebo libovolný typ, který je více odvozený. Další informace o kovarianci a kontravarianci najdete v tématu popisujícím kovarianci a kontravarianci u parametrického polymorfismu.
Odvozené

Poznámky

Dialogová okna můžou volat podřízená dialogová okna nebo odesílat zprávy uživateli. Dialogová okna se pozastaví při čekání na zprávu od uživatele robotovi. Dialogová okna se obnoví, když robot obdrží zprávu od uživatele.

Metody

StartAsync(IDialogContext)

Začátek kódu, který představuje konverzační dialogové okno.

Metody rozšíření

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

Jakmile se antecedent IDialog<TResult> dokončí, zachyťte a zpracujte všechny výjimky.

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

Jakmile se antecedent IDialog<TResult> dokončí, zachyťte a zpracujte všechny výjimky typu E.

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

Po dokončení příkazu IDialog<TResult> spusťte pokračování, aby se vytvořil další IDialog<TResult>objekt .

DefaultIfException<T>(IDialog<T>)

Jakmile se antecedent IDialog<TResult> dokončí, zastavte šíření výjimky.

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

Po dokončení funkce antecedent IDialog<TResult> zastavte šíření výjimky .E

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

Po dokončení spusťte vedlejší efekt IDialog<TResult> .

Loop<T>(IDialog<T>)

Smyčka navždy IDialog<TResult> .

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

Jakmile se antecedent IDialog<TResult> dokončí, publikujte položku do fronty událostí.

PostToUser<T>(IDialog<T>)

Publikujte uživateli výsledek příkazu IDialog<TResult>.

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

Po dokončení projektu IDialog<TResult> projektujte výsledek do nového IDialog<TResult>objektu .

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

Po dokončení antecedent IDialog<TResult> spusťte další IDialog<TResult>a pomocí projekce zkombinujte výsledky.

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

Po dokončení antecedent IDialog<TResult> projděte každou ICase<T,R> z nich a spusťte ContextualSelector<T,R>" první ICase<T,R> hodnoty, které vrácené hodnota v dialogovém okně předcházet.

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

Po dokončení proveďte akci IDialog<TResult> .

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

Zavolejte neplatný IDialog<TResult>, ignorujte výsledek a pak restartujte původní dialogové okno počkejte.

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

Zavolejte neplatný IDialog<TResult>, ignorujte výsledek a pak restartujte původní dialogové okno počkejte.

WaitToBot<T>(IDialog<T>)

Odešlete zprávu do řetězu robotovi po dokončení předběžného příkazu.

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

Po dokončení predikátu IDialog<TResult> vyhodnoťte predikát a rozhodněte se, zda chcete pokračovat.

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

Vytvořte smyčku IDialog<TResult> , která představuje smyčku While.

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

Ozdobte dialogové okno bodovatelným objektem, aby se bodovatel mohl účastnit zásobníku dialogů.

Platí pro