Microsoft.Bot.Builder.FormFlow.Advanced Namespace Reference

Namespace for FormFlow advanced building blocks. More...


class  Confirmation
 Confirmation More...
class  Extensions
class  Field
 Base class with declarative implementation of IField. More...
class  FieldReflector
 Fill in field information through reflection. More...
class  Fields
 Dictionary of all fields indexed by name. More...
class  FormButton
 A Form button that will be mapped to Connector.Action. More...
class  FormPrompt
 The prompt that is returned by form prompter. More...
interface  IField
 Interface for all the information about a specific field. More...
interface  IFieldDescription
 Describe the information displayed about a field and its values. More...
interface  IFieldPrompt
 This provides control information about a field. More...
interface  IFieldResources
 Interface for saving/localizing generated resources. More...
interface  IFields
 Interface to track all of the fields in a form. More...
interface  IFieldState
 Interface that defines basic access to a field. More...
interface  ILocalizer
 Interface for localizing string resources. More...
interface  IPrompt
 Interface for a prompt and its associated recognizer. More...
interface  IRecognize
 Interface for recognizers that look for matches in user input. More...
class  Language
 Language related utilities. More...
class  Localizer
 A resource localizer. More...
class  NextStep
 Next step to take. More...
class  Prompter
 A prompt and recognizer packaged together. More...
class  RecognizeBool
 Recognize a boolean value. More...
class  RecognizeDateTime
 Recognize a date/time expression. More...
class  RecognizeDouble
 Recognize a double or float field. More...
class  RecognizeEnumeration
 Recognizer for enumerated values. More...
class  RecognizeNumber
 Recognize a numeric field. More...
class  RecognizePrimitive
 Abstract class for constructing primitive value recognizers. More...
class  RecognizeString
 Recognize a string field. More...
class  ScriptGlobals
 Global values to pass into scripts defined using Microsoft.Bot.Builder.FormFlow.Json.FormBuilderJson. More...
class  TemplateBaseAttribute
 Abstract base class used by all attributes that use Pattern Language. More...
class  TermMatch
 Describe a possible match in the user input. More...


enum  FieldRole { FieldRole.Value, FieldRole.Confirm }
 The role the field plays in a form. More...
enum  SpecialValues { SpecialValues.Field }
 Enumeration of special kinds of matches. More...
enum  StepDirection {
  StepDirection.Complete, StepDirection.Named, StepDirection.Next, StepDirection.Previous,
  StepDirection.Quit, StepDirection.Reset
 Direction for next step. More...


delegate Task< bool > DefineAsyncDelegate< T > (T state, Field< T > field)
 Define field delegate. More...
delegate NextStep NextDelegate< T > (object value, T state)
 A delegate for deciding on the next step in the form to execute. More...
delegate Task< FormPromptPromptAsyncDelegate< T > (IDialogContext context, FormPrompt prompt, T state, IField< T > field)
 A delegate for styling and posting a prompt. More...

Detailed Description

Namespace for FormFlow advanced building blocks.

For most developers the building blocks in this namespace are not necessary. The main place to use these building blocks is to define a form dynamically rather than through C# reflection.

Enumeration Type Documentation

The role the field plays in a form.


Field is used to get a value to set in the form state.

This is the kind of field generated by IFormBuilder<T>.Field.


Field is used to confirm some settings during the dialog.

This is the kind of field generated by IFormBuilder<T>.Confirm.

Definition at line 129 of file IField.cs.

Enumeration of special kinds of matches.


Match corresponds to a field, not a specific value in the field.

Definition at line 42 of file IRecognize.cs.

Direction for next step.

As each step in a form completes, the step can determine the next step to take. Usually this is just to move onto the next active, uncompleted step, but you can also move back or present a list of choices to the user. A step is active if IFieldPrompt<T>.Active(T) returns true on the current state. A step is ready if it has not already been successfully completed.


The form is complete and IFormBuilder<T>.OnCompletion(OnCompletionAsyncDelegate<T>) should be called.


Move to a named step. If there is more than one name, the user will be asked to choose.


Move to the next step that is IFieldPrompt<T>.Active(T) and uncompleted.


Move to the previously executed step.


Quit the form and return failure to the parent dialog.


Reset the form to start over.

Definition at line 248 of file IField.cs.

Function Documentation

delegate Task<bool> Microsoft.Bot.Builder.FormFlow.Advanced.DefineAsyncDelegate< T > ( state,
Field< T >  field 

Define field delegate.

Template Parameters
TForm state type.
stateForm state.
fieldField being dynamically defined.
True if field is defined.

Delegate for dynamically defining a field prompt and recognizer. You can make use of the fluent methods on Field<T> to change the characteristics of the field.

Type Constraints
T :class 
delegate NextStep Microsoft.Bot.Builder.FormFlow.Advanced.NextDelegate< T > ( object  value,

A delegate for deciding on the next step in the form to execute.

Template Parameters
TForm state type.
valueValue just entered for field.
stateCurrent state object.
Type Constraints
T :class 
delegate Task<FormPrompt> Microsoft.Bot.Builder.FormFlow.Advanced.PromptAsyncDelegate< T > ( IDialogContext  context,
FormPrompt  prompt,
IField< T >  field 

A delegate for styling and posting a prompt.

contextMessage context.
promptPrompt to be posted.
stateState of the form.
fieldField being prompted or null if not a field.
Prompt that was posted.
Type Constraints
T :class