Microsoft Bot Framework FormFlow - 覆盖[可选]属性?

时间:2016-06-20 18:32:53

标签: c# botframework luis botbuilder

我的FormDialog有LUIS entities bound to the state

public abstract class AbstractFormDialog
{
    [Optional]
    public string Entity1;

    [Optional]
   public string Entity2;

    [Optional]
    public string Entity3;

    [Optional]
    public string Entity4;

    [Optional]
    public string Entity5;
}

在AbstractFormDialog的子类中,我希望能够说这些实体中的一些是必需的,所以"没有偏好"不是一种选择。像

这样的东西
public abstract class FormDialog1 : AbstractFormDialog
{
    [Required]
    public string Entity1;

    [Required]
   public string Entity2;
}

有人知道这是否可行?当然,我可以在基类中创建所需的所有属性,然后在扩展它的每个类中,列出哪些实体实际上是可选的。这种设计很糟糕,因为如果要添加一个新的实体,则每个子类都需要更新。

1 个答案:

答案 0 :(得分:1)

您还可以在构建表单时在运行时使用Field API来控制它,即     新的FormBuilder()         .Field(new FieldReflector(nameof(FormDialog1.Entity1))               .SetOptional(假))         。建立(); 这将使此实例的Entity1字段为“必需”。