public static async Task <DialogTurnResult> Call <T>(this DialogContext context, object entities = null, object options = null, CancellationToken cancellationToken = default) where T : class { Microsoft.Bot.Builder.Dialogs.Dialog diag = context.Dialogs.Find(typeof(T).Name); if (diag == null) { return(new DialogTurnResult(DialogTurnStatus.Cancelled)); } if (diag is FormDialog <T> ) { FormDialog <T> formDialog = diag as FormDialog <T>; var field = formDialog.GetType().GetField("_entities", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); if (field != null) { entities = ConvertToLuisModels(entities) ?? Enumerable.Empty <EntityRecommendation>(); field.SetValue(formDialog, entities); } } return(await context.BeginDialogAsync(typeof(T).Name, options, cancellationToken)); }