Я заметил странное 20 символов ограничение в значениях Choice (строка) при работе с ботом с использованием Microsoft Bot framework .Я впервые заметил это в своем собственном боте, который я разрабатываю, но затем я смог подтвердить проблему с примером, доступным по адресу https://github.com/Microsoft/BotBuilder-Samples ( 06. Использование карт )
Внешний вид PromptOptionsкак это ->
var options = new PromptOptions()
{
Prompt = MessageFactory.Text("What card would you like to see? You can click or type the card name"),
RetryPrompt = MessageFactory.Text("That was not a valid choice, please select a card or number from 1 to 9."),
Choices = GetChoices(),
};
и метод GetChoises похож на ->
private IList<Choice> GetChoices()
{
var cardOptions = new List<Choice>()
{
new Choice() { Value = "Adaptive Card", Synonyms = new List<string>() { "adaptive" } },
new Choice() { Value = "Animation Card", Synonyms = new List<string>() { "animation" } },
new Choice() { Value = "Audio Card", Synonyms = new List<string>() { "audio" } },
new Choice() { Value = "Hero Card", Synonyms = new List<string>() { "hero" } },
new Choice() { Value = "Receipt Card", Synonyms = new List<string>() { "receipt" } },
new Choice() { Value = "Signin Card", Synonyms = new List<string>() { "signin" } },
new Choice() { Value = "Thumbnail Card", Synonyms = new List<string>() { "thumbnail", "thumb" } },
new Choice() { Value = "Video Card", Synonyms = new List<string>() { "video" } },
new Choice() { Value = "All cards", Synonyms = new List<string>() { "all" } },
};
return cardOptions;
}
Когда приведенный выше код используется как есть, он дает хорошие параметры подсказки (в эмуляторе бота)
Однако, когда я делаю значение выбора строку длиннее 20 символов, это то, что происходит
Анимационная карта -> Очень длинная Анимационная карта
private IList<Choice> GetChoices()
{
var cardOptions = new List<Choice>()
{
new Choice() { Value = "Adaptive Card", Synonyms = new List<string>() { "adaptive" } },
new Choice() { Value = "Very long Animation Card", Synonyms = new List<string>() { "animation" } },
new Choice() { Value = "Audio Card", Synonyms = new List<string>() { "audio" } },
new Choice() { Value = "Hero Card", Synonyms = new List<string>() { "hero" } },
new Choice() { Value = "Receipt Card", Synonyms = new List<string>() { "receipt" } },
new Choice() { Value = "Signin Card", Synonyms = new List<string>() { "signin" } },
new Choice() { Value = "Thumbnail Card", Synonyms = new List<string>() { "thumbnail", "thumb" } },
new Choice() { Value = "Video Card", Synonyms = new List<string>() { "video" } },
new Choice() { Value = "All cards", Synonyms = new List<string>() { "all" } },
};
return cardOptions;
}
Я нашел то же самоепроблема обсуждалась в https://github.com/MicrosoftDocs/bot-docs/issues/1141, но я не знаю, какие изменения были сделаны для решения проблемы