【问题标题】:Can you create a microsoft bot FormFlow in vb.net?你能在 vb.net 中创建一个 microsoft bot FormFlow 吗?
【发布时间】:2017-11-08 01:12:39
【问题描述】:

我在一个 vb.net 项目中按照https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-formflow 的教程遇到了一个问题。

特别是围绕“将表单连接到框架”存在以下代码。

internal static IDialog<SandwichOrder> MakeRootDialog()
{
    return Chain.From(() => FormDialog.FromForm(SandwichOrder.BuildForm));
}

我的 vb.net 中的内容

Friend Shared Function MakeRootDialog() As IDialog(Of SandwichOrder)
    Return Chain.From(Function() FormDialog.FromForm(Of IForm(Of SandwichOrder))(SandwichOrder.BuildForm))
End Function

突出显示的错误是 FromForm

必须有一个公共无参数实例构造函数来满足类型参数“T”的“新”约束。

这对我来说很有意义,因为它确实如此,IForm 显然有。

受保护的子 New()

我不经常使用 c#,但我不知道为什么它在那里工作并且不返回相同的错误,尤其是因为 c# 中的构造函数是。

受保护的 IForm();

我在想我正在创建一个类的新实例,而在 c# 中我们没有......但我不知道为什么会这样。

有人有线索吗?

编辑:

虽然在 c# 中以下确实有效

return Chain.From(() => FormDialog.FromForm(SandwichOrder.BuildForm));

以下不是,即使它们相同但具有正确的类型参数。

        return Chain.From(() => FormDialog.FromForm<IForm<SandwichOrder>>(SandwichOrder.BuildForm));

我没有使用等效 vb 的原因

Return Chain.From(Function() FormDialog.FromForm(SandwichOrder.BuildForm))

是不是我收到以下错误。

方法中的类型参数不能从这些参数中推断出来。明确指定数据类型可能会纠正此错误。

我按照说明进行操作,这显然导致了上述错误,并且可能是红鲱鱼。显然,我还有另一个问题要弄清楚,为什么在 vb.net 中它认为函数的返回不一样。

Buildform 非常简单而且恰到好处。

Public Shared Function BuildForm() As IForm(Of SandwichOrder)
    Return New FormBuilder(Of SandwichOrder)().Message("Welcome to the simple sandwich order bot!").Build()
End Function

【问题讨论】:

    标签: asp.net vb.net botframework


    【解决方案1】:

    想通了。

    问题是 BuildFormDeligate - FromForm 的预期类型未隐式返回。解决方案是简单地创建对象并将其传入。奇怪,因为我不需要在 c# 中执行此操作,但是嘿嘿。

    Dim BuildFormDeligate As New BuildFormDelegate(Of SandwichOrder)(AddressOf SandwichOrder.BuildForm)
    
    Return Chain.From(Function() FormDialog.FromForm(BuildFormDeligate))
    

    【讨论】:

      猜你喜欢
      • 2019-01-18
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      相关资源
      最近更新 更多