Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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# 获取使用链时发送到Bot的第一条消息_C#_Botframework - Fatal编程技术网

C# 获取使用链时发送到Bot的第一条消息

C# 获取使用链时发送到Bot的第一条消息,c#,botframework,C#,Botframework,内部控制器 公共异步任务发布([FromBody]活动) 我执行 wait Conversation.sendaync(活动,()=>MakeJsonRootDialog()) 那么在实现中,我是如何将第一条消息发送到BOT的呢? “对象已完成”仅包含对话期间询问的字段: public static IDialog<JObject> MakeJsonRootDialog(string strDirPath) { return Chain.From(() =&g

内部控制器
公共异步任务发布([FromBody]活动)
我执行
wait Conversation.sendaync(活动,()=>MakeJsonRootDialog())
那么在实现中,我是如何将第一条消息发送到BOT的呢?
“对象已完成”仅包含对话期间询问的字段:

public static IDialog<JObject> MakeJsonRootDialog(string strDirPath)
    {
        return Chain.From(() => FormDialog.FromForm(preChatInquery.BuildJsonForm))
            .Do(async (context, order) =>
            {
                try
                {
                    var completed = await order;

                    await context.PostAsync("Processed your order!");
                }
                catch (FormCanceledException<JObject> e)
                {
                    string reply;
                    if (e.InnerException == null)
                    {
                        reply = $"You quit on {e.Last}--maybe you can finish next time!";
                    }
                    else
                    {
                        reply = "Sorry, I've had a short circuit.  Please try again.";
                    }
                    await context.PostAsync(reply);
                }
            });  
publicstaticidialogmakejsonrootdialog(字符串strDirPath)
{
return Chain.From(()=>FormDialog.FromForm(preChatInquery.BuildJsonForm))
.Do(异步(上下文、顺序)=>
{
尝试
{
var完成=等待订单;
wait context.PostAsync(“已处理您的订单!”);
}
捕获(FormCanceledException e)
{
字符串回复;
if(e.InnerException==null)
{
reply=$“您在{e.Last}上退出--也许下次可以完成!”;
}
其他的
{
reply=“对不起,我短路了。请再试一次。”;
}
等待上下文。PostAsync(回复);
}
});  

`使用Chain时,首先要做的事情是使用PostToChain()方法将消息发布到Chain中

下面是一个示例

public static readonly IDialog dialog=Chain.PostToChain()
.Select(msg=>msg.Text)

您使用链而非标准对话框的原因是什么?我使用了JSON对话框的示例是..但这是用于使用FormFlow的。这是您想要的吗?是的,我想继续使用该示例-请帮助获取第一条消息,该消息未存储。我没有得到您的答案:How var completed=Wait order;将包含第一个message发送了?什么?而不是做Chain.From…你需要从Chain.PostToChain()开始代码是什么?`public static IDialog MakeJsonRootDialog(string strDirPath){IDialog dialog=Chain.PostToChain().Select(msg=>msg.Text);return Chain.From(()=>FormDialog.FromForm(preChatInquery.BuildJsonForm)).Do(异步(上下文,顺序)=>{try{var completed=wait order;wait context.PostAsync(“已处理您的订单!”);}`你需要将PostToChain与From等链接起来。使用和理解链接的使用是一个高级主题,这就是为什么我问你为什么要使用它。我建议使用标准对话框,而不是链。你仍然可以使用FormFlow抱歉,我不明白你的答案。我希望你能展示如何在商店中使用代码片段发送到bot的第一条消息
public static readonly IDialog<string> dialog = Chain.PostToChain()
            .Select(msg => msg.Text)