IMessageActivity как параметр

Согласно этой теме, как получить информацию о деятельности из IDialogContext Я изменил все свои методы-намерения в коде:

Я вызываю свой LuisDialog из MessagesController следующим образом:

 await Conversation.SendAsync(activity, () => new RootLuisDialog());

а затем в методе:

    [LuisIntent("test-intent")]
            public async Task help(IDialogContext context, IAwaitable<IMessageActivity> activity  LuisResult result)
            {

 await Conversation.SendAsync(activity  , () => SimpleFacebookAuthDialog.dialog);

    }

Поэтому, когда я запускаю это, он выдает исключение:

{";Никто"}

и stacktrace:

Вам нужно «подождать» параметра

 await Conversation.SendAsync(activity, () => new RootLuisDialog());
:


person activ8    schedule 24.01.2017    source источник


Ответы (2)


Все, что вам нужно сделать, это обновить своего старого бота до новейшей версии. Это даст вам IAwaitable<IMessageActivity>. Сделайте свой выбор.

[LuisIntent("test-intent")]
public async Task help(IDialogContext context, IAwaitable<IMessageActivity> argument, LuisResult result)
{
    var activity = await argument;
    await Conversation.SendAsync(activity, () => SimpleFacebookAuthDialog.dialog);
}
person stuartd    schedule 24.01.2017
comment
Что это за функция? Мой бот не использует диалоги, но этот код из документацию, адаптированную к опубликованному вами коду. - person activ8; 24.01.2017
comment
Функция, определенная в LuisDialog. Я не могу активизировать это. Я хочу вызвать другой диалог, основанный на этом намерении .... Есть идеи? - person stuartd; 24.01.2017
comment
Я собственно и автор этого поста :)))) - person activ8; 24.01.2017

Это не работает. Выдает такое же исключение. Я изменил все намерения и добавил в него var context.Activity.

person activ8    schedule 24.01.2017
comment
в Microsoft.Bot.Builder.Dialogs.LuisDialog.d__0.MoveNext () \ r \ n в System.Linq.Enumerable.ToDictionary [TSource, TKey, TElement] (IEnumerable_3_2 keySelector, компаратор Func_4_1) \ r \ n в Microsoft.Bot .Builder.Dialogs.LuisDialog_5_1.d__6.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task ) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в Microsoft.Bot.Builder.Dialogs.Internals.DialogTask.ThunkResume_6_2.-PollAsync> d__19.MoveNext --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification ( Task task) \ r \ n в Microsoft.Bot.Builder.Internals.Fibers.Frame_7_1.-PollAsync> d__13.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () \ r \ n
в Microsoft.Bot.Builder. Internals.Fibers.Wait_8_1.d__3.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в Microsoft.Bot.Builder.Dialogs.Internals.DialogTask.ThunkResume_9_2.-PollAsync> d__19.MoveNext- () - Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задача) \ r \ n в Microsoft.Bot.Builder.Internals.Fibers.Frame_10_1.-PollAsync> d__13.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServic es.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в Microsoft.Bot.Builder.Dialogs.Internals.DialogTask.d__21_11_1.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System. Время выполнения.CompilerServices. TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в Microsoft.Bot.Builder.Dialogs.Internals.LocalizedDialogTask.d__2_12_12 r \ n --- Конец трассировки стека из предыдущего места, где возникло исключение --- \ r \ n в Microsoft.Bot.Builder.Dialogs.Internals.PersistentDialogTask.d__6`1.MoveNext () \ r \ n-- - Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи ) \ r \ n в Microsoft.Bot.Builder.Dialogs.Conversation.d__4.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime .CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.Han dleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в Microsoft.Bot.Builder.Dialogs.Conversation.d__2.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задача) \ r \ n в System .Runtime.CompilerServices.Getask \ n в MessengerBot.MessagesController.d__1.MoveNext () в C: \ app \ Controllers \ MessagesController.cs: строка 52 " - person activ8; 24.01.2017