2016-12-07 5 views
1

Я хочу вызвать диалог LUIS вне класса MessageController. Я создаю корень Диалог в моем классе MessageController:Как вызвать диалог LUIS за пределами класса MessageController

if (activity.Type == ActivityTypes.Message) { 
await Conversation.SendAsync(activity,() => new MessageDialogHandler()); 

В моем MessageDialogHandler класса я обработка вложения и ввод текста.

if (activity.Attachments?.Count() > 0) { 
      FaceAnalysis faceAnalysis = new FaceAnalysis(); 
      await faceAnalysis.AnalyseImageAsync(context, argument); 
     } 
else if(activity.Text.Length > 0) { 
//here needs to be the code to call a LUIS dialog. 
} 

У меня есть стандартный класс LUIS:

[LuisModel("App-ID", "SubscriptionKey")] 
[Serializable] 

public class LuisDialog : LuisDialog<object> { 

Как умудряются называть это ЛУИС Диалог из моего класса MessageDialogHandler? Да, я прочитал это сообщение Link, но это мне не помогло.

Спасибо за любые идеи.

ответ

1

Вам просто нужно сделать контекст. Вперед сообщения LuisDialog.

await context.Forward(
     new LuisDialog(), 
     LuisDialogCompleted, 
     activity, 
     System.Threading.CancellationToken.None); 

Чтобы понять больше вокруг, как позвонить диалогах, пожалуйста, обратитесь к this.

+0

Спасибо, это работает, потрясающе! – Soeren

+0

Удивительный, пожалуйста, отметьте вопрос как ответ –