Condividi tramite


IDialog<TResult> Interfaccia

Definizione

Un IDialog<TResult> è un processo di conversazione sospeso che produce un risultato di tipo TResult.

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

Parametri di tipo

TResult

Tipo di risultato.

Questo parametro di tipo è covariante, ovvero puoi usare il tipo specificato o qualsiasi tipo più derivato. Per altre informazioni sulla covarianza e la controvarianza, vedi Covarianza e controvarianza nei generics.
Derivato

Commenti

I dialoghi possono chiamare dialoghi figlio o inviare messaggi a un utente. Le finestre di dialogo vengono sospese quando si attende un messaggio dall'utente al bot. Le finestre di dialogo vengono riprese quando il bot riceve un messaggio dall'utente.

Metodi

StartAsync(IDialogContext)

Inizio del codice che rappresenta la finestra di dialogo di conversazione.

Metodi di estensione

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

Al termine del rientro IDialog<TResult> precedente, rilevare e gestire eventuali eccezioni.

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

Al termine dell'operazione precedente IDialog<TResult> , rilevare e gestire eventuali eccezioni di tipo E.

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

Al termine dell'operazione precedente IDialog<TResult> , eseguire la continuazione per produrre il successivo IDialog<TResult>.

DefaultIfException<T>(IDialog<T>)

Al termine del precedente IDialog<TResult> , arrestare la propagazione dell'eccezione.

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

Al termine dell'operazione precedente IDialog<TResult> , arrestare la propagazione di un'eccezione di E.

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

Eseguire un effetto collaterale dopo un IDialog<TResult> completamento.

Loop<T>(IDialog<T>)

Ciclo per IDialog<TResult> sempre.

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

Al termine dell'antecedente IDialog<TResult> , pubblicare l'elemento nella coda di eventi.

PostToUser<T>(IDialog<T>)

Inviare all'utente il risultato di un IDialog<TResult>oggetto .

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

Al termine del precedente IDialog<TResult> , proiettare il risultato in un nuovo IDialog<TResult>oggetto .

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

Al termine dell'operazione precedente IDialog<TResult> , eseguire il successivo IDialog<TResult>e usare la proiezione per combinare i risultati.

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

Al termine dell'operazione precedente IDialog<TResult> , passare a ogni ICase<T,R> oggetto ed eseguire il ContextualSelector<T,R>valore " del primo ICase<T,R> che il valore restituito dalla finestra di dialogo precedente soddisfa.

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

Eseguire un'azione dopo il IDialog<TResult> completamento.

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

Chiamare il valore voided IDialog<TResult>, ignorare il risultato, quindi riavviare l'attesa della finestra di dialogo originale.

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

Chiamare il valore voided IDialog<TResult>, ignorare il risultato, quindi riavviare l'attesa della finestra di dialogo originale.

WaitToBot<T>(IDialog<T>)

Inviare alla catena il messaggio al bot dopo il completamento del precedente.

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

Al termine dell'antecedente IDialog<TResult> , valutare il predicato e decidere se continuare.

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

Creare un oggetto IDialog<TResult> che rappresenta un ciclo di tempo.

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

Decorare un dialogo con un punteggio, in modo che un punteggio può partecipare allo stack di dialoghi.

Si applica a