从Context获取ConversationId

时间:2016-05-16 10:21:05

标签: c# botframework

如何从ConversationId获取IDialogContext context?我知道有一个ConverationData属性,但这似乎只是一个可以容纳任何东西的数据包。

这个包里有身份证吗?如果是这样,检索它的关键是什么?

public async Task General(IDialogContext context, LuisResult result)
{
    //how can I access the conversationId here
}

3 个答案:

答案 0 :(得分:1)

所以我找到了一种方法,但我不确定这是否是最佳方式。

传入的context对象上有一个data字段,其中包含原始message对象,而该对象又包含ConversationId。不幸的是,这是私人的。

但是context确实有CreateMessage方法,该方法返回包含Message的{​​{1}}对象,并且可以访问。

ConversationId

就像我说的那样,我不确定这是不是最好的方式,但这是我能够实现这一目标的唯一方法。如果有人有更好的方法,我会把它留下来。

答案 1 :(得分:0)

看一下这段代码:

var id = context.MakeMessage().Conversation.Id;

Id现在是Conversation对象中的属性。它对我有用。

答案 2 :(得分:0)

使用最新版本的框架,您可以更轻松地从DialogContext对象中获取它:

var conversationId = context.Activity.Conversation.Id;

我使用了它,并且可以在我的机器人上使用它。