Luis エンティティを FormFlow フィールドにバインドするのに問題があるため、FormFlow の手順をスキップできます。私のFormFlowダイアログの簡略版は次のとおりです
[Serializable]
public class DoSearch
{
public string SearchTerm;
public static IForm<DoSearch> BuildForm()
{
var builder = new FormBuilder<DoSearch>();
return builder
.Message("Search Function")
.Field(nameof(DoSearch.SearchTerm))
.AddRemainingFields()
.Confirm("Are you sure you wish to search for {SearchTerm} ?")
.Build();
}
}
そして、私は次のコードでこれを呼び出しています
public async Task StartSearch(IDialogContext context, LuisResult result)
{
var searchForm = new BuildForm<DoSearch>(() => DoSearch.BuildForm());
var searchForm1 = new FormDialog<DoSearch>(new DoSearch(), searchForm , FormOptions.PromptInStart, result.Entities);
context.Call<searchForm>(searchForm1, SearchComplete);
// ...
}
result.Entities には適切なエンティティ (Type = SearchTerm) が含まれていますが、FormFlow は実行時に常にこれを要求します。
サンプル ピザ ボットのサンプル コードは機能しているように見えますが、エンティティをフィールドにバインドするようには見えません。
誰が私が間違っているのか考えていますか?
前もって感謝します