Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 新虚拟助手模板中OnEventActivityAsync()的备选方案_C#_Botframework - Fatal编程技术网

C# 新虚拟助手模板中OnEventActivityAsync()的备选方案

C# 新虚拟助手模板中OnEventActivityAsync()的备选方案,c#,botframework,C#,Botframework,我使用的是基于SDK版本4.6的Virtual Assistant模板的一个版本,该版本使用OnEventActivityAsync()实现事件处理。我一直在使用它来实现主动通知。但是,在对Virtual Assistant解决方案模板进行最新更新之后,MainDialog的结构发生了更改,我不再看到正在处理的事件活动。新模板中是否有其他方法允许我处理事件,类似于旧模板中的OnEventActivityAsync()方法?我当前的设置如下: protected override async Ta

我使用的是基于SDK版本4.6的Virtual Assistant模板的一个版本,该版本使用OnEventActivityAsync()实现事件处理。我一直在使用它来实现主动通知。但是,在对Virtual Assistant解决方案模板进行最新更新之后,MainDialog的结构发生了更改,我不再看到正在处理的事件活动。新模板中是否有其他方法允许我处理事件,类似于旧模板中的OnEventActivityAsync()方法?我当前的设置如下:

protected override async Task OnEventActivityAsync(DialogContext innerDc, CancellationToken cancellationToken = default)
    {
        var ev = innerDc.Context.Activity.AsEventActivity();
        var value = ev.Value?.ToString();

        switch (ev.Name)
        {
            ....
            case Events.Broadcast:
                {
                    var eventData = JsonConvert.DeserializeObject<EventData>(innerDc.Context.Activity.Value.ToString());

                    var proactiveModel = await _proactiveStateAccessor.GetAsync(innerDc.Context, () => new ProactiveModel());

                    var hashedUserId = MD5Util.ComputeHash(eventData.UserId);

                    var conversationReference = proactiveModel[hashedUserId].Conversation;

                    await innerDc.Context.Adapter.ContinueConversationAsync(_appCredentials.MicrosoftAppId, conversationReference, ContinueConversationCallback(innerDc.Context, eventData.Message), cancellationToken);
                    break;
                }
        }
    }
protected override异步任务OnEventActivityAsync(DialogContext innerDc,CancellationToken CancellationToken=default)
{
var ev=innerDc.Context.Activity.AsEventActivity();
var value=ev.value?.ToString();
开关(电动名称)
{
....
案件事件。广播:
{
var eventData=JsonConvert.DeserializeObject(innerDc.Context.Activity.Value.ToString());
var proactiveModel=await _proactiveStateAccessor.GetAsync(innerDc.Context,()=>newproactivemodel());
var hashedUserId=MD5Util.ComputeHash(eventData.UserId);
var conversationReference=proactiveModel[hashedUserId]。会话;
等待innerDc.Context.Adapter.ContinueConversationAsync(_-appCredentials.MicrosoftAppId,conversationReference,ContinueConversationCallback(innerDc.Context,eventData.Message),cancellationToken);
打破
}
}
}
这个完整的方法,在新版本的模板中丢失了,那么有没有其他方法可以在新的VA模板中实现呢?

我猜这是您在GitHub repo上的问题。添加问题的答案,以帮助其他人,并提高可见性

您可以处理不需要由方法中的对话框堆栈处理的事件

如果您的事件需要由对话框堆栈处理,例如TokenResponse事件,您可以在方法中处理它

文件将很快更新,以反映上述变化