0
ここの例をMessage Controller for Pizza Exampleに見て、いくつかのユーザー入力に基づいてSizeまたはKindを設定してデータベースに呼び出したい場合、どうすればよいですか?データベースから取得した値からEnumを取り込む方法
私が知る限り、実行時に列挙型を簡単に取り込む方法はありません。
ここの例をMessage Controller for Pizza Exampleに見て、いくつかのユーザー入力に基づいてSizeまたはKindを設定してデータベースに呼び出したい場合、どうすればよいですか?データベースから取得した値からEnumを取り込む方法
私が知る限り、実行時に列挙型を簡単に取り込む方法はありません。
これはまだ実装されていないようです。私はhttps://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/FormFlow/FormBuilder.csの内側を見ていたし、この発見:列挙型以外の列挙について
internal static void TypePaths(Type type, string path, List<string> paths)
{
if (type.IsClass)
{
if (type == typeof(string))
{
paths.Add(path);
}
else if (type.IsIEnumerable())
{
var elt = type.GetGenericElementType();
if (elt.IsEnum)
{
paths.Add(path);
}
else
{
// TODO: What to do about enumerations of things other than enums?
}
}
else
{
FieldPaths(type, path, paths);
}
}
else if (type.IsEnum)
{
paths.Add(path);
}
else if (type == typeof(bool))
{
paths.Add(path);
}
else if (type.IsIntegral())
{
paths.Add(path);
}
else if (type.IsDouble())
{
paths.Add(path);
}
else if (type.IsNullable() && type.IsValueType)
{
paths.Add(path);
}
else if (type == typeof(DateTime))
{
paths.Add(path);
}
}
お知らせTODOを。
PromptDialog.Choice
は、IEnumerable<>
のオプションを使用してFormBuilderの外で使用できます。
ダイアログを連鎖させることができるので、FormDialog
を2つに分けて、PromptDialogを中間に置いてください。
また、BotBuilderのフォークを取り、TODO!