Freigeben über


IDialog<TResult> Schnittstelle

Definition

Ein IDialog<TResult> ist ein angehaltener Konversationsprozess, der ein Ergebnis vom Typ TResulterzeugt.

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

Typparameter

TResult

Der Ergebnistyp.

Dieser Typparameter ist kovariant. Das bedeutet, dass Sie entweder den angegebenen Typ oder einen stärker abgeleiteten Typ verwenden können. Weitere Informationen zu Kovarianz und Kontravarianz finden Sie unter Kovarianz und Kontravarianz in Generics.
Abgeleitet

Hinweise

Dialoge können untergeordnete Dialoge aufrufen oder Nachrichten an einen Benutzer senden. Dialoge werden angehalten, wenn auf eine Nachricht vom Benutzer an den Bot gewartet wird. Dialoge werden fortgesetzt, wenn der Bot eine Nachricht vom Benutzer empfängt.

Methoden

StartAsync(IDialogContext)

Der Anfang des Codes, der das Konversationsdialogfeld darstellt.

Erweiterungsmethoden

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

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, können Sie alle Ausnahmen abfangen und behandeln.

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

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, können Sie alle Ausnahmen des Typs Eabfangen und behandeln.

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

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, führen Sie die Fortsetzung aus, um die nächste IDialog<TResult>zu erzeugen.

DefaultIfException<T>(IDialog<T>)

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, beenden Sie die Weitergabe der Ausnahme.

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

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, beenden Sie die Weitergabe einer Ausnahme von E.

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

Führen Sie einen Nebeneffekt aus, nachdem eine IDialog<TResult> abgeschlossen wurde.

Loop<T>(IDialog<T>)

Schleife für IDialog<TResult> immer.

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

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, posten Sie das Element in der Ereigniswarteschlange.

PostToUser<T>(IDialog<T>)

Veröffentlichen Sie dem Benutzer das Ergebnis eines IDialog<TResult>.

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

Wenn der Vorgänger abgeschlossen ist, projizieren IDialog<TResult> Sie das Ergebnis in eine neue IDialog<TResult>.

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

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, führen Sie den nächsten IDialog<TResult>aus, und verwenden Sie die Projektion, um die Ergebnisse zu kombinieren.

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

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, gehen Sie durch die einzelnen ICase<T,R> Schritte, und führen Sie " ContextualSelector<T,R>der ersten ICase<T,R> aus, die der zurückgegebene Wert durch das vorgehende Dialogfeld erfüllt.

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

Führen Sie nach Abschluss des IDialog<TResult> Vorgangs eine Aktion aus.

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

Rufen Sie die ungültige IDialog<TResult>auf, ignorieren Sie das Ergebnis, und starten Sie dann die ursprüngliche Dialogwarte neu.

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

Rufen Sie die ungültige IDialog<TResult>auf, ignorieren Sie das Ergebnis, und starten Sie dann die ursprüngliche Dialogwarte neu.

WaitToBot<T>(IDialog<T>)

Posten Sie die Nachricht in der Kette an den Bot, nachdem der Vorgänger abgeschlossen ist.

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

Wenn der Vorgänger IDialog<TResult> abgeschlossen ist, bewerten Sie das Prädikat, und entscheiden Sie, ob der Vorgang fortgesetzt werden soll.

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

Erstellen Sie eine IDialog<TResult> , die eine while-Schleife darstellt.

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

Versehen Sie einen Dialog mit einem besenkbaren, sodass ein Korrigable am Dialogstapel teilnehmen kann.

Gilt für: