- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试创建一个 LuisDialog
用户发送的所有消息都将自动翻译成我的 LUIS 应用可以理解的语言。
为此,我重写了 LuisDialog.MessageReceived()
方法。
我将消息自动翻译成我的语言,但我遇到的问题是如何更新 IAwaitable<IMessageActivity>.Text
的值以便对话框内基于意图的方法可以透明地访问它。
[Serializable]
class LuisDialogAutoTranslated<T> : LuisDialog<T>
{
protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> msg)
{
var activity = await msg;
activity.Text = await new CognitiveTranslator().TranslateToCurrentLanguage(activity.Text);
//????
//how to replace the value of IMessageActivity.Text
//inside the IAwaitable msg?
//????
await base.MessageReceived(context, msg);
}
}
最佳答案
与其覆盖 MessageReceived
,我建议您覆盖 GetLuisQueryTextAsync
,它基本上接收消息并返回将传递给 LUIS (see here) 的文本。
如果您仍然想覆盖 MessageReceived
,那么您将使用 Awaitable<T>
创建一个 Awaitable.FromItem<IMessageActivity>(activity)
,如下面的代码所示。
var activity = await msg;
activity.Text = await new CognitiveTranslator().TranslateToCurrentLanguage(activity.Text);
msg = Awaitable.FromItem<IMessageActivity>(activity);
await base.MessageReceived(context, msg);
关于c# - 通过覆盖 MessageReceived 在 LuisDialog 中自动翻译消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41606640/
我正在寻找围绕 Mule Flow 的一个方面,IE 我想定义一个 @Around当某些东西进入 Mule 流时就会触发它,这样我就可以执行自己的统计数据收集。我还没有找到一个简单的“Flow”类来包
我的来源TestMessage - 是我的 protobuf 对象 @Override public ChannelPipeline getPipeline() {
我正在尝试使用 MessageReceiver 中的 ReceiveBatch 方法从 ServiceBus 批量接收消息: IEnumerable messages; var messagingfa
我正在尝试在绑定(bind)的 UDP 套接字(DatagramSocket)上取消订阅 MessageReceived 并获取异常。 我就是这样注册的: EventRegistrationT
我已经使用 RegisterMessageHandler 成功实现了与 ServiceBus 的连接,MessageReceiver 启动了一个泵(从此 example 开始),一切似乎都工作得很好。
基本上就是标题。这是我的代码 @FunctionName("Process") public void run(@ServiceBusTopicTrigger( name = "
我已经为这个问题摸不着头脑有一段时间了。大多数时候它工作正常,但我们偶尔会遇到 MessageLockLostException 集群。据我所知,完成该消息的条件是正确的。 我们正在使用如下创建的 M
在使用 Netty Channels 的基于 TCP 的服务器-客户端模型中,来自服务器的 Channel.write() 数量与相应的 Channel.messageReceived()< 之间是否
我正在尝试创建一个 LuisDialog用户发送的所有消息都将自动翻译成我的 LUIS 应用可以理解的语言。 为此,我重写了 LuisDialog.MessageReceived()方法。 我将消息自
我想用 TPL 包装以下数据报套接字操作以清理 API,以便它与 async 一起很好地工作。和 await ,很像 StreamSocket类。 public static async Task T
我正在尝试绑定(bind)到 Azure 服务总线触发函数中的 MessageReceiver。 我的目标是处理死信队列消息并完成它们。 public static class Functio
我在尝试将 MessageReceiver 实例注入(inject)我的 .NET 5 函数时遇到问题,如下所示: [Function("MyFunction") public void Run([S
仅第一次使用MessageReceiver使用Azure函数从主题获取消息,之后下次执行函数时,尽管我有消息进入服务总线主题,但变量仍然为空消息. 使用下面的代码从服务总线主题获取消息,原因是什么?
仅第一次使用MessageReceiver使用Azure函数从主题获取消息,之后下次执行函数时,尽管我有消息进入服务总线主题,但变量仍然为空消息. 使用下面的代码从服务总线主题获取消息,原因是什么?
我有一个用 .NET 4 编写的 Windows 服务,它创建包含无限运行的 while(running) 循环的多个线程。当我停止服务时,running bool 值变为 false,我们跳出 wh
我正在将服务从 Axis 迁移到 Axis2 (Java)。该服务响应一个简单的 SOAP 请求,其正文中包含一些“自定义”XML,如下所示: user pass
这两个: queueClient.PeekBatch(Convert.ToInt32(60)); 还有这个: messageReceiver.PeekBatch(Convert.ToInt32(60)
我已将 Azure 函数配置为在触发 Azure 函数时不显示“自动完成”消息。我的问题是我需要自己标记消息完成,并在事务的上下文中这样做(如下)。此使用“通过”路由的事务在控制台应用程序中有效,但在
我是一名优秀的程序员,十分优秀!