1
我正在嘗試創建一個LuisDialog
,其中來自用戶的所有消息都會自動翻譯成我的LUIS應用程序能夠理解的語言。在LuisDialog中通過覆蓋消息自動翻譯消息
爲此,我重寫了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);
}
}