从上下文中获取ConversationId

从上下文中获取ConversationId

问题描述:

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

这个包里的id是什么?如果是这样,检索它的关键是什么?

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

所以我找到了一种方法,但我不确定它是否是最好的方法。

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

context确实有一个CreateMessage方法返回一个Message对象,其中包含ConversationId它是可访问的。

var id = context.MakeMessage().ConversationId; 

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