是否可以从IDialogContext参数中获取用户的消息?

时间:2016-07-15 03:49:29

标签: c# botframework

在Microsoft Bot Framework页面上的一个示例中,它们具有以下代码:

[Serializable]
public class EchoDialog : IDialog<object>
{
    public async Task StartAsync(IDialogContext context)
    {
        context.Wait(MessageReceivedAsync);
    }
    public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
    {
        var message = await argument;
        await context.PostAsync("You said: " + message.Text);
        context.Wait(MessageReceivedAsync);
    }
}

    public virtual async Task<HttpResponseMessage> Post([FromBody] Activity activity)
    {
        // check if activity is of type message
        if (activity != null && activity.GetActivityType() == ActivityTypes.Message)
        {
            await Conversation.SendAsync(activity, () => new EchoDialog());
        }
        else
        {
            HandleSystemMessage(activity);
        }
        return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
    }

是否可以通过context参数获取从Post传递给StartAsync方法的用户消息?是否也可以存放东西?文档正在我的头脑中,我想知道这个东西是否可以修改。

1 个答案:

答案 0 :(得分:0)

您可以向EchoDialog添加一个构造函数,用于存储您喜欢的任何数据,例如:活动实例。