我正在使用 IActivityLogger 来记录机器人和用户之间的对话。这里记录器正在记录除 PromptDialog.Choice() 生成的文本之外的所有消息
我已经测试了 PromptDialog 的其他方法,例如
PromptDialog.Confirm()
PromptDialog .Text()
这些正在工作,我的意思是正在记录来自这些方法的文本,只有 PromptDialog.Choice 文本没有击中 IActivityLogger。
记录器
public class Logger : IActivityLogger
{
public async Task LogAsync(IActivity activity)
{
Debug.WriteLine(activity.AsMessageActivity()?.Text);
}
}
RootDialog.cs
public async Task StartAsync(IDialogContext context)
{
string[] choices = new string[]{ "choice 1" , "choice 2"};
PromptDialog.Choice(context, resumeAfterPrompt, choices, "please choose an option.");
}
private async Task resumeAfterPrompt(IDialogContext context, IAwaitable<object> result)
{
await context.PostAsync((await result).ToString());
context.Done<object>(null);
}
除了来自 RootDialog 的 PromptDialog.Choice() 之外,所有其他的来往消息都通过 Logger 类。
相关分类