語言

FormBuilderJson 類別

定義

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

public sealed class FormBuilderJson : Microsoft.Bot.Builder.FormFlow.FormBuilderBase<Newtonsoft.Json.Linq.JObject>
type FormBuilderJson = class
    inherit FormBuilderBase<JObject>
Public NotInheritable Class FormBuilderJson
Inherits FormBuilderBase(Of JObject)
繼承
FormBuilderBase<Newtonsoft.Json.Linq.JObject>
FormBuilderJson

備註

透過 JSON 架構 定義表單,並可選地附加對應 C# 屬性的註解。

%FormFlow 會使用多種標準 的 JSON Schema 關鍵字,包括:

  • type -- 定義欄位類型。 * enum -- 定義可能的場值。 * minimum -- 定義最小允許值,如 所述 NumericAttribute。 * maximum -- 定義最大允許值,詳見 NumericAttribute。 * required —— 定義所需的欄位。 * pattern -- 對於字串欄位,將使用來驗證輸入的模式,詳見 PatternAttribute。

    模板和提示詞使用與 TemplateAttributePromptAttribute和 相同的詞彙。 屬性名稱與底層 C# 列舉中的值相同。 例如,若要定義一個模板來覆寫該 NotUnderstood 模板並指定 TemplateBaseAttribute.ChoiceStyle,你可以在結構中放置以下內容:~~~ “Templates”:{ “NotUnderunderstanded”: { Patterns: [“我不懂”], “ChoiceStyle”: Auto“}} ~~~

    %Extensions 在結構根定義 * OnCompletion: script -- C# 腳本,並以參數(IDialogContext 上下文、JObject 狀態)來完成表單。 * References: [assemblyReference, ...] -- 定義腳本中可包含的參考。 路徑應該是絕對的,或是相對於目前目錄的。 預設情況下 Microsoft.Bot.Builder.dll 包含在內。 * Imports: [import, ...] -- 定義匯入,包含在腳本中,並包含使用值。 預設情況下,這些命名空間包含:Microsoft。Bot.Builder,Microsoft。Bot.Builder.Dialogs,Microsoft。Bot.Builder.FormFlow, Microsoft.Bot.Builder.FormFlow.Advanced、System.Collections.Generic、System.Linq

    %Extensions 定義在結構的根端,或作為「型別」屬性的對等節點。 * Templates:{TemplateUsage: { Patterns:[string, ...], &lt;args&gt; }, ...} -- 定義範本。 * Prompt: { Patterns:[string, ...] &lt;args&gt;} —— 定義一個提示詞。

    %Extensions 在屬性描述中作為 JSON Schema 的「型別」屬性的對應。 * DateTime:bool -- 將欄位標記為DateTime欄位。 * Describe:string -- 描述於 DescribeAttribute的場。 * Terms:[string,...] -- 用於匹配欄位值的正則表達式,如 TermsAttribute。 * MaxPhrase:int ——這會讓你的條件通過 GenerateTerms(String, Int32) ,以擴大它們。 * Values:{ string: {Describe:string, Terms:[string, ...], MaxPhrase}, ...} -- 字串必須在「enum」類型中找到,這樣你才能覆蓋自動產生的描述和術語。 若指定 MaxPhrase,則該項會通過 GenerateTerms(String, Int32)。 * Active:script -- C# 腳本,包含參數(JObject state)->bool,用以測試欄位/訊息/確認是否啟用。 * Validate:script -- C# 腳本,包含參數(JObject 狀態、物件值)->ValidateResult,用於驗證欄位值。 * Define:script -- 帶有參數(JObject 狀態、欄位<JObject> 欄位)用於動態定義欄位的 C# 腳本。 * Before:[confirm|message, ...] -- 包含欄位前的訊息或確認。 * After:[confirm|message, ...] -- 包含欄位後的訊息或確認。 * {Confirm:script|[string, ...], ...templateArgs} -- 在 Before/After 中,透過帶有參數的 C# 腳本(JObject 狀態)或一組隨機選取的模式,並搭配可選的模板參數來定義確認。 * {Message:script|[string, ...] ...templateArgs} -- 使用 Before/After 可透過 C# 腳本(帶參數)或一組隨機選取的模式(可選模板參數)定義訊息。 * Dependencies:[弦,...]-- Fields that this field, message or confirm depends on.</p><p>Scripts can be any C# code you would find in a method body. You can add references through "References" and using through "Imports". Special global variables include: *選擇-- internal dispatch for script to execute. *狀態-- JObject form state bound for all scripts. *ifield -- <xref data-throw-if-not-resolved="true" uid="Microsoft.Bot.Builder.FormFlow.Advanced.IField1“> 讓除了 /Confirm 提示建構器 %Message外,所有腳本都能對目前欄位進行推理。 * value -- 物件值需驗證以驗證。 * field -- Field<T> 允許在 Dedefine 中動態更新欄位。 * context -- IDialogContext 提供上下文以便允許在 OnCompletion 中發佈結果。

    透過此類別定義的 %Fields,具備與其他領域相同的程式化擴展或覆寫定義的能力。 它們也可以以相同方式進行在地化。

建構函式

名稱 Description
FormBuilderJson(JObject)

建立一個 JSON 表單建構器。

欄位

名稱 Description
_form

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)

屬性

名稱 Description
Configuration

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Schema

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

方法

名稱 Description
AddRemainingFields(IEnumerable<String>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

Build(Assembly, String)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

Confirm(MessageDelegate<T>, ActiveDelegate<T>, IEnumerable<String>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Confirm(PromptAttribute, ActiveDelegate<T>, IEnumerable<String>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Confirm(String, ActiveDelegate<T>, IEnumerable<String>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Field(IField<T>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Field(String, ActiveDelegate<JObject>, ValidateAsyncDelegate<JObject>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

Field(String, ActiveDelegate<T>, ValidateAsyncDelegate<T>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Field(String, PromptAttribute, ActiveDelegate<JObject>, ValidateAsyncDelegate<JObject>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

Field(String, PromptAttribute, ActiveDelegate<T>, ValidateAsyncDelegate<T>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Field(String, String, ActiveDelegate<JObject>, ValidateAsyncDelegate<JObject>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

Field(String, String, ActiveDelegate<T>, ValidateAsyncDelegate<T>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
HasField(String)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Message(MessageDelegate<T>, ActiveDelegate<T>, IEnumerable<String>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Message(PromptAttribute, ActiveDelegate<T>, IEnumerable<String>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Message(String, ActiveDelegate<T>, IEnumerable<String>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
OnCompletion(OnCompletionAsyncDelegate<T>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)
Prompter(PromptAsyncDelegate<T>)

透過 JSON Schema 或程式化方式,指定訊息、欄位和確認函數來建立表單。

(繼承來源 FormBuilderBase<T>)

適用於