спасибо за сообщение об этой проблеме. Основная причина в том, что pictureUrl длиннее, чем максимальная длина URI .NET. Мы отслеживаем это исправление здесь .
Существует довольно простой обходной путь, поскольку в библиотеке .NET C # используется ограничение, которое вы используете для простого создания карты, но WebChat не использует библиотеку C # для отображения карточек (он использует библиотеку JS). , а JS / HTML не имеет ограничения по длине!). Поэтому единственное, что не работает в вашем случае, - это генерирование JSON ... но есть простое исправление!
Обход :
Определите следующий класс, расширяющий AdaptiveImage
, добавляющий свойство LongUrl
(которое записывает в то же свойство url
в JSON).
public class AdaptiveImageWithLongUrl : AdaptiveImage
{
[JsonProperty(PropertyName = "url", Required = Required.Always)]
public string LongUrl { get; set; }
}
Затем , используйте новый класс изображений и новое свойство при назначении длинных URL-адресов!
// A data URL that's longer than .NET max length
string actualUrl = "data:image/gif;base64," + string.Join("", new int[120000].Select(i => "A")) + "end";
AdaptiveCard card = new AdaptiveCard("1.0")
{
Body =
{
new AdaptiveImageWithLongUrl()
{
LongUrl = actualUrl
}
}
};
// Place the JObject in the attachment!
var attachment = new Attachment()
{
Content = card,
ContentType = "application/vnd.microsoft.card.adaptive",
Name = "cardName"
};