2017-03-06 3 views
0

위젯을 검색 한 후 어떤 위젯을 사용할지 물어보고 위젯 목록을 얻고 싶습니다. 위젯의 이름을 클릭하고 위젯의 URL을 얻을 수 있기를 원합니다. 다음 코드를 실행하면 invalid need: expected Call, have Poll이됩니다.봇 프레임 워크, promptchoice 객체 목록

public async Task SelectAfterSearch(IDialogContext context, List<Widget> widgetlist) 
{ 
    PromptDialog.Choice(context, this.OnWidgetSelected, GetListOfWidgets("list"), "Which one do you want more information about?", "Not a valid option", 3); 
} 

public async Task OnWidgetSelected(IDialogContext context, IAwaitable<Widget> result) 
{ 
    var chosen = await result; 
    await context.PostAsync($"You have chosen {chosen.Name}: {chosen.Url}"); 
} 

답변

2

당신은 당신의 OnWidgetSelected 방법의 끝에 context.Wait 누락되었습니다.

public async Task OnWidgetSelected(IDialogContext context, IAwaitable<Widget> result) 
{ 
    var chosen = await result; 
    await context.PostAsync($"You have chosen {chosen.Name}: {chosen.Url}"); 
    context.Wait(...) // => usually you Wait on the MessageReceived method. 
} 
+0

여전히 같은 오류가 있습니다. – broodjetom

+0

OnWidgetSelected에 중단 점을 넣으면 충돌합니까? –

+0

아니요 아마도 결과를받지 못했기 때문일 수 있습니다. 하지만 프롬프트 대화 상자는 실행되지 않습니다 – broodjetom