[英]DefaultActivityHandler inheritance in Virtual Assistant and Skill Templates
[英]Storing/Sending information from a skill to the Microsoft virtual Assistant
我正在使用Microsoft Bot框架(4.x),我們已經設置了虛擬助手以及一些技能。 我們目前正在嘗試讓用戶在特定技能中斷他們當前的對話框並跳轉到新的對話框。 我們希望添加一些功能,這些功能可以讓我們跳回到用戶離開之前退出的技能的位置。
我的問題是,是否有可能將信息從技能傳遞到虛擬助手,並在整個對話中持續存在? 信息將是字符串列表或類似的東西
如果您嘗試檢索選項的對話框是WaterfallDialog,則可以使用Options屬性檢索選項,使用options參數傳遞選項 。
如下所示:
// Call the dialog and pass through options
await dc.BeginDialogAsync(nameof(MyDialog), new { MyProperty1 = "MyProperty1Value", MyProperty2 = "MyProperty2Value" });
// Retrieve the options
public async Task<DialogTurnResult> MyWaterfallStepAsync(WaterfallStepContext waterfallStepContext, CancellationToken cancellationToken)
{
var passedInOptions = waterfallStepContext.Options;
...
}
使用強類型類傳入和檢索選項,因此您可以創建如下所示的內容:
// Concrete class definition
public class MyOptions
{
public string OptionA{ get; set; }
public string OptionB{ get; set; }
}
// Passing options to Dialog
await dc.BeginDialogAsync(nameof(MyDialog), new MyOptions{ OptionA= "MyOptionOneValue", OptionB= "MyOptionTwo" });
// Retrieving options in child Dialog
using Newtonsoft.Json;
public async Task<DialogTurnResult> MyWaterfallStepAsync(WaterfallStepContext waterfallStepContext, CancellationToken cancellationToken)
{
var passedInOptions = waterfallStepContext.Options;
// Get passed in options, need to serialise the object before we deserialise because calling .ToString on the object is unreliable
MyOptions passedInMyOptions = JsonConvert.DeserializeObject<MyOptions>(JsonConvert.SerializeObject(waterfallStepContext.Options));
...
// Use retrieved options like passedInOptions.OptionA etc
}
閱讀有關EndDialogAsync的更多信息
看看它是否有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.