Эмулятор не поддерживает обновления или удаления сообщений, поэтому вы не сможете проверить эту функцию в эмуляторе. Однако вы все равно можете отлаживать своего бота локально на канале, таком как Команды, используя сервис туннелирования, такой как ngrok: https://blog.botframework.com/2017/10/19/debug-channel-locally-using-ngrok/
Примеры того, как обновить активность, можно найти в следующих ответах. :
Вы можете видеть, что это касается состояния бота. Если вы просто хотите удалить всю активность, то ваша работа может быть проще, потому что вам не нужно сохранять какую-либо информацию о действиях, кроме идентификатора активности. Ваш метод доступа к состоянию может выглядеть следующим образом:
public IStatePropertyAccessor<Dictionary<string, string>> CardStateAccessor { get; internal set; }
И вы можете инициализировать его следующим образом:
CardStateAccessor = _conversationState.CreateProperty<Dictionary<string, string>>("cardState");
Поскольку ваша карта находится в форме JSON, вы можете десериализовать ее перед добавлением уникального идентификатора карты в действие отправки:
var card = JObject.Parse(json);
var data = card.SelectToken("actions[0].data");
var cardId = Guid.NewGuid();
data[KEYCARDID] = cardId;
var cardActivity = MessageFactory.Attachment(new Attachment("application/vnd.microsoft.card.adaptive", content: card));
var response = await turnContext.SendActivityAsync(cardActivity, cancellationToken);
var dict = await CardStateAccessor.GetAsync(turnContext, () => new Dictionary<string, string>(), cancellationToken);
dict[cardId] = response.Id;
Затем вы можете удалить действие следующим образом:
var value = JObject.FromObject(turnContext.Activity.Value);
var cardId = Convert.ToString(value[KEYCARDID]);
var dict = await CardStateAccessor.GetAsync(turnContext, () => new Dictionary<string, string>(), cancellationToken);
if (dict.TryGetValue(cardId, out var activityId))
{
await turnContext.DeleteActivityAsync(activityId, cancellationToken);
dict.Remove(cardId);
}
Если вы хотите, чтобы этот процесс был упрощен, тогда вы можете озвучить вашу поддержку предложения моей библиотеки карт: https://github.com/BotBuilderCommunity/botbuilder-community-dotnet/issues/137