2017-06-22 2 views
0

、私は以下のコードで、有効なオプションの定義済みのセットを表示するにはPromptDialogを使用しています:自由形式の回答が一覧にされていないで入力された場合無効な回答を処理するためのカスタムロジックをBot Framework PromptDialogに追加できますか?私のボットFrameworkプロジェクトで

 var pickListOptions = new List<Option>(); 
     pickListOptions.AddRange(
      _currentQuestion.validValues.Select(x => Option.CreateOption(x))); 

     PromptDialog.Choice(context, choiceSelected, 
      pickListOptions, 
      _currentQuestion.label, 
      "Sorry, I didn't get that", 3, PromptStyle.Keyboard); 

有効な値が入力されると、「Sorry、did not got that」というメッセージが自動的に表示され、質問が再表示されます。しかし、別のダイアログ(ユーザーがヘルプを求めている場合など)で無効な回答を処理する可能性があります。カスタムロジックで自動再プロンプトを無効にする方法はありますか?

答えて

3

この質問のための可能性の高い2つの有効な答えがあります。

  1. あなたが検証を変更したい場合は、あなたがPromptChoiceから継承し、TryParseまたはMessageReceivedAsyncメソッドをオーバーライドすることができます。例えば、CancelablePromptChoice
  2. helpのようにグローバルコマンドを扱う場合は、#1で説明したのではなく、Scorablesの使用を検討してください。詳細を理解するにはGlobalMessagesHandlersサンプルをご覧ください。
+0

ありがとうございました!ええ、助けを求めて、おそらくScorablesは理にかなっていますが、ユーザーが聞くことのできる非現実的な質問の範囲が広がっています。私は今継承/オーバーライドを見ている - うまくいけば、これはうまくいく! –

+0

継承している輝きがあなたのために働くならば、答えとしてマークしてください。 –

関連する問題