FormBuilderJson クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
JSON スキーマまたはプログラムを使用してメッセージ、フィールド、確認を指定してフォームを作成します。
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)
- 継承
注釈
C# で提供される属性に対応する追加の注釈を省略可能な JSON スキーマ を使用してフォームを定義します。
%FormFlow では、次のような多くの標準的な JSON スキーマ キーワードが使用されます。
-
type-- フィールドの種類を定義します。 *enum-- 使用可能なフィールド値を定義します。 *minimum-- で説明されているように、最小値を定義 NumericAttributeします。 *maximum-- で説明されているように、許容される最大値を NumericAttribute定義します。 *required-- 必要なフィールドを定義します。 *pattern-- 文字列フィールドの場合は、 で PatternAttribute説明されているように、入力されたパターンを検証するために使用されます。テンプレートとプロンプトでは、 および とPromptAttribute同じボキャブラリがTemplateAttribute使用されます。 プロパティ名は同じであり、値は基になる C# 列挙の値と同じです。 たとえば、テンプレートをオーバーライド NotUnderstood するテンプレートを定義し、TemplateBaseAttribute.ChoiceStyle を指定するには、スキーマにこれを配置します: ~~~ "Templates":{ "NotUnderstood": { Patterns: ["I don't get"],"ChoiceStyle":"Auto"}} ~~~
%Extensions はスキーマ *
OnCompletion: scriptのルートで定義されています。-- フォームを完了するための引数 (IDialogContext context, JObject state) を含む C# スクリプト。 *References: [assemblyReference, ...]-- スクリプトに含める参照を定義します。 パスは絶対パス、または現在のディレクトリに対する相対パスにする必要があります。 既定では、Microsoft.Bot.Builder.dll が含まれています。 *Imports: [import, ...]-- using を含むスクリプトに含めるインポートを定義します。 既定では、Microsoft.Bot.Builder、Microsoft.Bot.Builder.Dialogs、Microsoft.Bot.Builder.FormFlow、Microsoft.Bot.Builder.FormFlow.Advanced、System.Collections.Generic、System.Linq%Extensions は、スキーマのルートで、または "type" プロパティのピアとして定義されます。 *
Templates:{TemplateUsage: { Patterns:[string, ...], <args> }, ...}-- テンプレートを定義します。 *Prompt: { Patterns:[string, ...] <args>}-- プロンプトを定義します。プロパティの説明にある %Extensions は、JSON スキーマの "type" プロパティに対するピアとして検出されます。 *
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 状態)->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# スクリプト (JObject 状態) またはオプションのテンプレート引数でランダムに選択されるパターンのセットを使用してメッセージを定義します。 *Dependencies:[string, ...]-- 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: *choice-- internal dispatch for script to execute. *state-- JObject form state bound for all scripts. *ifield-- <xref data-throw-if-not-resolved="true" uid="Microsoft.Bot.Builder.FormFlow.Advanced.IField1"> を使用すると、%Message/Confirm プロンプト ビルダーを除くすべてのスクリプトに対して現在のフィールドを推論できます。 *value-- Validate に対して検証されるオブジェクト値。 *field-- Field<T> を使用すると、Define のフィールドを動的に更新できます。 *context-- IDialogContext コンテキストを使用して、OnCompletion での結果の投稿を許可します。このクラスで定義された %Fields には、他のフィールドと同じ機能を使用して、定義をプログラム的に拡張またはオーバーライドできます。 同じ方法でローカライズすることもできます。
コンストラクター
| FormBuilderJson(JObject) |
JSON フォーム ビルダーを作成します。 |
フィールド
| _form |
JSON スキーマまたはプログラムを使用してメッセージ、フィールド、確認を指定してフォームを作成します。 (継承元 FormBuilderBase<T>) |
プロパティ
| Configuration |
JSON スキーマまたはプログラムを使用してメッセージ、フィールド、確認を指定してフォームを作成します。 (継承元 FormBuilderBase<T>) |
| Schema |
JSON スキーマまたはプログラムを使用してメッセージ、フィールド、確認を指定してフォームを作成します。 |