Я создаю простого бота с помощью Microsoft BotFramework и использую FormFlow
. Так:
[Serializable]
public class Test
{
public String Name {get;set;}
public uint Age {get;set; }
}
internal static IDialog<Test> MakeRootDialog()
{
return Chain.From(() => FormDialog.FromForm(Test.BuildForm));
}
А также:
public async Task<Message> Post([FromBody]Message message)
{
if (message.Type == "Message")
{
return await Conversation.SendAsync(message, MakeRootDialog);
}
else
{
return HandleSystemMessage(message);
}
}
Итак, Micrisoft BotEmulator работает хорошо (и бот) и спрашивает у меня Имя и Возраст Человека. Но как получить результат этого выбора, чтобы использовать его?
И как узнать, какой пользователь набирает его? Должен ли я использовать ConversationId?
P.S. я имею в виду, как я могу получить результат от имени пользователя и возраста пользователя? Я пытаюсь использовать:
var name= result.GetBotPerUserInConversationData<Test>("Name");
Но он возвращает ноль;
P.P.S: я использую эмулятор бота: и получаю ответ json следующим образом:
GetBotPerUserInConversationData:DialogState { some binary data }
Итак, я использую
var name= result.GetBotPerUserInConversationData<Test>("DialogState");
Но получить ошибку:
"exceptionMessage": "Error converting value System.Byte[] to type 'Test'. Path ''.",
"exceptionType": "Newtonsoft.Json.JsonSerializationException"