Вопрос:

dc.BeginDialogAsync: «Значение не может быть нулевым. \ nПараметр имени: параметры»

c# azure-bot-service

11 просмотра

1 ответ

1124 Репутация автора

Каждый раз, когда я запускаю, await dc.BeginDialogAsync("sign-in");я получаю это исключение, которое не имеет смысла, так как остальные параметры являются необязательными. Это меня очень смущает. Вот мой код:

public FlexoBot(ConversationState conversationState)
{
    this.dialogState = conversationState.CreateProperty<DialogState>("dialog-state");
    this.dialogs = new DialogSet(this.dialogState);

    // Make oauth card available to use for all handlers
    this.dialogs.Add(new OAuthPrompt("oauth", new OAuthPromptSettings() { ConnectionName = "flexo-auth" }));
    dialogs.Add(new WaterfallDialog("sign-in", new WaterfallStep[] {
        PromptSignIn,
        GreetUser,
    }));
}


protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
{
    var dc = await this.dialogs.CreateContextAsync(turnContext);
    foreach (var member in membersAdded)
    {
        if (member.Id != turnContext.Activity.Recipient.Id)
        {
            await dc.BeginDialogAsync("sign-in");
            // Throws: System.ArgumentNullException has been thrown "Value cannot be null.\nParameter name: options"
        }
    }
}
Автор: AskYous Источник Размещён: 12.06.2019 12:00

Ответы (1)


0 плюса

1124 Репутация автора

Я наконец-то понял. Это потому, что я звонил return step.PromptAsync("oauth", null);в один из моих шагов водопада. Я изменил это на:

return step.PromptAsync("oauth", new PromptOptions { });

И это работает сейчас.

Автор: AskYous Размещён: 12.06.2019 04:58
Вопросы из категории :
32x32