如何从ConversationId
获取IDialogContext context
?我知道有一个ConverationData
属性,但这似乎只是一个可以容纳任何东西的数据包。
这个包里有身份证吗?如果是这样,检索它的关键是什么?
public async Task General(IDialogContext context, LuisResult result)
{
//how can I access the conversationId here
}
答案 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;
我使用了它,并且可以在我的机器人上使用它。