我正在使用Microsoft的Bot Framework制作机器人,我注意到当我进行更改并部署到Microsoft Teams时,它使用相同的会话状态,我必须编写"/ deleteprofile"来清除状态.
我想在我的代码中清除状态,但不知道这样做的好方法.我不确定哪个文件和用什么代码来清除对话状态.
作为参考,我目前正在使用C#.
有不同的方法可以实现这一目标,具体取决于您希望从何处完成此操作.
一种方法是简单地context.EndConversation("Conversation Ended");从对话中调用.
另一个有点复杂,但它会完成同样的事情,你可以调整以满足你的需求:
public static async Task AbortConversation(Activity message)
{
using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message))
{
var token = new CancellationToken();
var botData = scope.Resolve<IBotData>();
await botData.LoadAsync(token);
var stack = scope.Resolve<IDialogStack>();
stack.Reset();
// botData.UserData.Clear(); //<-- could clear userdata as well
botData.ConversationData.Clear();
botData.PrivateConversationData.Clear();
await botData.FlushAsync(token);
var botToUser = scope.Resolve<IBotToUser>();
await botToUser.PostAsync(message.CreateReply("Conversation aborted."));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1949 次 |
| 最近记录: |