IDialog<TResult> Interface
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
A IDialog<TResult> is a suspendable conversational process that produces a result of type TResult
.
public interface IDialog<out TResult>
type IDialog<'Result> = interface
Public Interface IDialog(Of Out TResult)
Type Parameters
- TResult
The result type.
This type parameter is covariant. That is, you can use either the type you specified or any type that is more derived. For more information about covariance and contravariance, see Covariance and Contravariance in Generics.- Derived
Remarks
Dialogs can call child dialogs or send messages to a user. Dialogs are suspended when waiting for a message from the user to the bot. Dialogs are resumed when the bot receives a message from the user.
Methods
StartAsync(IDialogContext) |
The start of the code that represents the conversational dialog. |
Extension Methods
Catch<T>(IDialog<T>, Func<IDialog<T>,Exception,IDialog<T>>) |
When the antecedent IDialog<TResult> has completed, catch and handle any exceptions. |
Catch<T,E>(IDialog<T>, Func<IDialog<T>,E,IDialog<T>>) |
When the antecedent IDialog<TResult> has completed, catch and handle any exceptions of type |
ContinueWith<T,R>(IDialog<T>, Chain.Continuation<T,R>) |
When the antecedent IDialog<TResult> has completed, execute the continuation to produce the next IDialog<TResult>. |
DefaultIfException<T>(IDialog<T>) |
When the antecedent IDialog<TResult> has completed, stop the propagation of Exception. |
DefaultIfException<T,E>(IDialog<T>) |
When the antecedent IDialog<TResult> has completed, stop the propagation of an exception of |
Do<T>(IDialog<T>, Func<IBotContext,IAwaitable<T>,Task>) |
Execute a side-effect after a IDialog<TResult> completes. |
Loop<T>(IDialog<T>) |
Loop the IDialog<TResult> forever. |
PostEvent<T,E>(IDialog<T>, E) |
When the antecedent IDialog<TResult> has completed, post the item to the event queue. |
PostToUser<T>(IDialog<T>) |
Post to the user the result of a IDialog<TResult>. |
Select<T,R>(IDialog<T>, Func<T,R>) |
When the antecedent IDialog<TResult> has completed, project the result into a new IDialog<TResult>. |
SelectMany<T,C,R>(IDialog<T>, Func<T,IDialog<C>>, Func<T,C,R>) |
When the antecedent IDialog<TResult> has completed, execute the next IDialog<TResult>, and use the projection to combine the results. |
Switch<T,R>(IDialog<T>, ICase<T,R>[]) |
When the antecedent IDialog<TResult> has completed, go through each ICase<T,R> and run the ContextualSelector<T,R>" of the first ICase<T,R> that the returned value by the antecedent dialog satisfies. |
Then<T,R>(IDialog<T>, Func<IBotContext,IAwaitable<T>,Task<R>>) |
Execute an action after the IDialog<TResult> completes. |
Void<T>(IDialog<T>, IDialogStack) |
Call the voided IDialog<TResult>, ignore the result, then restart the original dialog wait. |
Void<T,R>(IDialog<T>) |
Call the voided IDialog<TResult>, ignore the result, then restart the original dialog wait. |
WaitToBot<T>(IDialog<T>) |
Post to the chain the message to the bot after the antecedent completes. |
Where<T>(IDialog<T>, Func<T,Boolean>) |
When the antecedent IDialog<TResult> has completed, evaluate the predicate and decide whether to continue. |
While<T>(IDialog<T>, Func<T,IDialog<Boolean>>, Func<T,IDialog<T>>) |
Create a IDialog<TResult> that represents a while loop. |
WithScorable<T,Item,Score>(IDialog<T>, IScorable<Item,Score>) |
Decorate a dialog with a scorable, so that a scorable can participate on the dialog stack. |