2016-10-30 22 views
1

我一直在使用context.setvalue();和context.TryGetvalue();在Bot框架中存儲和接收數據到不同的存儲區。從消息控制器c訪問對話數據#

我想知道我們如何能夠從MessageController.cs

已經嘗試過創建一個新的對象,它沒有爲我工作訪問此值。

回答

6

要獲取對話數據,您需要參考上下文或從活動中獲取狀態客戶端。

裏面的對話框,你可以使用上下文: http://robinosborne.co.uk/2016/08/08/persisting-data-within-a-conversation-with-botframeworks-dialogs/

對話外,你可以使用活動得到國家的客戶:

StateClient stateClient = activity.GetStateClient(); 
BotData userData = await stateClient.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id); 
if (userData.GetProperty<bool>("SentGreeting")) 
     // do something 

https://docs.botframework.com/en-us/csharp/builder/sdkreference/stateapi.html

希望幫助!

+0

所以在你的博客和發佈你的說私人convo是什麼需要使用超過正常的對話數據? –

+0

我已經嘗試過這種方法,但它並沒有幫助從消息控制器發送數據。 –

+0

問題是在messaegcontroller.cs –