Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
630 views
in Technique[技术] by (71.8m points)

c# - Microsoft Bot Framework - Clear Conversation State

I am making a bot using Microsoft's Bot Framework, and I've noticed that when I make changes and deploy to Microsoft Teams, it uses the same conversation state and I have to write "/deleteprofile" to clear the state.

I want to clear the state within my code, but don't know a good way to do this. I am not sure which file and what code to use to clear the conversation state.

For reference, I am currently using C#.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

there are different ways to accomplish this depending on where you would like to do this from.

one way would be to simply call context.EndConversation("Conversation Ended"); from a dialog.

The other is a bit more complicated but it will accomplish the same thing here is an implementation you can tweak to suit your needs:

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."));
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...