我正在尝试使用Microsoft Bot Framework(版本3)C#项目中使用的LuisIntent
类中的LuisModel
方法访问原始邮件。但是,我似乎无法自己弄明白,也没有在a related StackOverflow question工作中提出任何建议(因为这涉及到MBF版本1)。
我尝试评论a related issue on GitHub,但没有成功。
有谁知道如何获取触发该方法的用户消息?
答案 0 :(得分:1)
自最新版本(3.2.0)以来,感谢提交(https://github.com/Microsoft/BotBuilder/commit/f156a60880e86f7b853b1f94a5546386436ac3d0)
现在我们可以直接从意图处理程序
获取活动示例代码
public async Task Test(IDialogContext context, IAwaitable<IMessageActivity> origin, LuisResult result)
您可以拥有一个属性来存储原始活动,并将其分配到MessageReceived
public class YourDialog : LuisDialog<string>
{
[NonSerialized]
private IMessageActivity _originActivity;
internal YourDialog()
{
}
[LuisIntent("IntentionConstant.Empty")]
public async Task HandleLuisResult(IDialogContext context, LuisResult result)
{
try
{
// you can access _originActivity here
}
catch (Exception ex) when(ex is ApplicationException)
{
throw;
}
catch (Exception ex) when (ex is TaskCanceledException)
{
}
}
protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
{
_originActivity = await item;
await base.MessageReceived(context, item);
}
}