текст PromptDialog.Choice не попадает в IActivityLogger
Я создаю образец и пытаюсь воспроизвести проблему. Я обнаружил, что он может попасть в регистратор, когда я выбрал параметр изPromptDialog.Choice
список опций.
RootDialog:
[Serializable]
public class RootDialog : IDialog<object>
{
public Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
return Task.CompletedTask;
}
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
string[] choices = new string[] { "choice 1", "choice 2" };
PromptDialog.Choice(context, resumeAfterPrompt, choices, "please choose an option.");
}
private async Task resumeAfterPrompt(IDialogContext context, IAwaitable<string> result)
{
string choice = await result;
await context.PostAsync($"You sent {choice}");
//context.Done<object>(null);
}
}
Регистратор:
public class DebugActivityLogger : IActivityLogger
{
public async Task LogAsync(IActivity activity)
{
Debug.WriteLine(activity.AsMessageActivity()?.Text);
}
}
Результат теста эмулятора:
VS Окно вывода:
Кроме того, если вы установите контрольную точку внутри своего Logger для отладки и отслеживания активности, вы обнаружите, что activity.AsMessageActivity()?.Text
будет ""
, когда он будет отображать HeroCard, чтобы предложить пользователю один из набора вариантов.
Таким образом, в окно вывода VS будет записана пустая строка.