2016-06-06 4 views
0

Есть ли простой способ получить сообщение пользователя в Microsoft Bot Framework, переданное в строчную переменную (C#)?Выполнение простого ввода пользователем внутри метода в Bot Framework

По существу, я хочу принять следующее сообщение пользователя в качестве входного сигнала наполовину методом и продолжить выполнение того же метода с сообщением, сохраненным как переменная.

Я хочу, чтобы избежать процесса с использованием PromptDialog, изменяя метод ограждающую, чтобы соответствовать параметрам PromptDialog (так как мой метод будет иметь LuisResult и не IAwaitable ...) и т.д.

То, что я хочу, это эквивалентно от ввода пользовательских входов через консоль, но в этом случае я бы делал это через интерфейс рамки бота - без выхода или изменения метода, который я сейчас нахожу. Ничего особенный требуется, как повторы и т.д.

EDIT: Я не хочу/нужно сообщение, чтобы пройти через LUIS либо (MessageReceived также помещает каждое сообщение через LUIS)

Спасибо!

ответ

0

В настоящее время этого не происходит. Боты должны быть апатридами, все состояние бота должно быть явно сохранено в IBotDataBag. То, что вы надеетесь сделать, по существу создаст анонимный метод, который ссылается на локальные переменные. Полученное закрытие не является сериализуемым.

+0

Итак, есть способ обработать PromptDialogs, поддерживая переменную Luisresult? Моя проблема будет решена, если я смогу передать управление методу, но также получить доступ к моей переменной результата LuisResult (частный глобальный экземпляр из-за этого вызывает проблемы из-за сериализации). Спасибо – Kaizoku

+0

Класс сообщения имеет три свойства, которые вы можете использовать для этого: BotUserData, BotConversationData, BotPerUserInConversationData. Вы можете найти более подробную информацию здесь: http://docs.botframework.com/connector/tracking-bot-state/#message-botdata-properties –