Enums Microsoft框架自定义枚举

Enums Microsoft框架自定义枚举,enums,botframework,chatbot,Enums,Botframework,Chatbot,您好,我正在使用Microsoft Botframework。 我想做一个自定义枚举,如果用户选择了其他,他将输入一个列表中不存在的选项 Please select value: 1-option1 2-option2 3-other 这可以通过FormFlow的FieldReflector.SetActive完成: [Serializable] public class OptionalFormFlow { public enum Options {

您好,我正在使用Microsoft Botframework。 我想做一个自定义枚举,如果用户选择了其他,他将输入一个列表中不存在的选项

Please select value: 
1-option1 
2-option2  
3-other

这可以通过FormFlow的FieldReflector.SetActive完成:

[Serializable]
public class OptionalFormFlow
{
    public enum Options
    {
        Option1 = 1,
        Option2 = 2,
        Other = 3
    }

    public Options Option { get; set; }
    public string OtherOption { get; set; }
    public string Name { get; set; }

    public static IForm<OptionalFormFlow> BuildForm()
    {

        var built = new FormBuilder<OptionalFormFlow>()
            .Field(nameof(Option))
            .Field(new FieldReflector<OptionalFormFlow>(nameof(OtherOption))
                .SetActive(state => state.Option == Options.Other))
            .Field(nameof(Name), "What is your name?")
            .AddRemainingFields()
            .Confirm("Is this information correct? {*}")
            .Build();

        return built;
    }
}
[可序列化]
公共类OptionalFormFlow
{
公共枚举选项
{
选项1=1,
选项2=2,
其他=3
}
公共选项选项{get;set;}
公共字符串OtherOption{get;set;}
公共字符串名称{get;set;}
公共静态表单BuildForm()
{
var builded=new FormBuilder()
.字段(名称(选项))
.字段(新字段反射器(名称(其他选项))
.SetActive(state=>state.Option==Options.Other))
.Field(nameof(Name),“您叫什么名字?”)
.AddRemainingFields()
.Confirm(“此信息正确吗?{*}”)
.Build();
返修;
}
}
结果: