2016-04-19 14 views
0

私のLuis EntitiesをFormFlowフィールドにバインドするのに問題がありますので、FormFlowのステップをスキップできます。私FormFlowダイアログの簡易版はダイアログフィールドへのLuisエンティティのマッピング

[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でこれを呼び出しています適切なエンティティ(タイプ= SEARCHTERM)が、FormFlowを含んでいますそれが実行されるときに常にこれを求めます。

サンプルピザボットのサンプルコードが動作しているようですが、エンティティをフィールドにバインドすることはできません。

誰かが私が間違っていることを知っていますか?事前

+0

をこんにちは@Ian_Boggs、あなたはおそらくあなたが最初の場所でFormFlowとLuisDialogを混合する方法であなたのソースを共有するだろうか?私は同じことをしようとしていますが、どのように把握していません。 – Jasper

答えて

0

おかげでバグであることが表示されます。エンティティはEnumであるプロパティにバインドするようですが、それは文字列です。あなたはそれが動作するはずSDKの最新バージョンを取得する場合

https://github.com/Microsoft/BotBuilder/issues/151

がうまくいけば、これはいくつかの時点

関連する問題