0
我使用的類是Microsoft.Bot.Builder.Dialog.Promptoptions,它需要一個ResumeAfter,它是委託並需要(IDialogContext上下文,IAwaitable結果)我很難隱藏一個IAwaitable到LuisResult(微軟Bot框架上的LUIS)
不過,我想打電話給該委託是不是 私人異步任務測試(IDialogContext背景下,IAwaitable結果)
而是具有以下
[LuisIntent一個LUIS委託(」測試「) 私人異步
這將不勝感激聽到一些想法如何調用LUIS任務測試(IDialogContext背景下,LuisResult結果)歸因方法
private async Task ProductChoice(IDialogContext context, IAwaitable<string> result)
{
PromptDialog.Choice<string>(
context,
ProductOverview,
this.productOptions,
"Which plaform are you interested in?",
"Ooops, what you wrote is not a valid option, please try again",
3,
PromptStyle.PerLine);
await context.PostAsync(context.MakeMessage());
}
[LuisIntent ("Products")]
public async Task ProductOverview(IDialogContext context, LuisResult result)
{
string product = "";
EntityRecommendation rec;
Activity activity = (Activity)context.MakeMessage();
Attachment attachment;
if (result.TryFindEntity("ProductName", out rec))
{
//Here you could include other rich cards
attachment = CreateNewHeroCard(product = rec.Entity);
activity.Attachments.Add(attachment);
await context.PostAsync(activity);
}
else
{
await context.PostAsync("Sorry, their is no product by that name");
}
}
你需要表現出更多的代碼。你如何使用PromptOptions,你爲什麼期望'LuisResult'返回到你的回調? – Evk
您可能需要重構一些代碼,並將您的測試方法中的內容提取爲Luis結果和ResumeAfter使用的常用方法。 –
您將無法做到這一點。但重構代碼會更容易,使用一個通用的方法。 –