我使用pakage qna maker开发了一个机器人,我需要更改tooManyAttempts资源的标签,因为用法语这不是最好的词。
我可以更改资源吗?还是可以跟踪tooManyAttempts变量来更改他的值?

谢谢你的帮助

最佳答案

如果您查看Github(here)上QnAMakerDialog的实现,您会发现该消息在这里声明:

protected virtual async Task QnAFeedbackStepAsync(IDialogContext context, QnAMakerResults qnaMakerResults)
{
    var qnaList = qnaMakerResults.Answers;
    var questions = qnaList.Select(x = >x.Questions[0]).Concat(new[] {
        Resource.Resource.noneOfTheAboveOption
    }).ToArray();

    PromptOptions < string > promptOptions = new PromptOptions < string > (
    prompt: Resource.Resource.answerSelectionPrompt, tooManyAttempts: Resource.Resource.tooManyAttempts, options: questions, attempts: 0);

    PromptDialog.Choice(context: context, resume: ResumeAndPostAnswer, promptOptions: promptOptions);
}


如您所见,抛出TooManyAttemptsException时发送的消息位于包的“资源”中:Resource.Resource.tooManyAttempts

您可以考虑重写该方法,但是很快您将面临必须引用未定义方法的问题:这里ResumeAndPostAnswer被定义为私有方法,因此不可见。

因此,不幸的是,解决方案之一是从GitHub项目中获取所有必要的资源(也就是说,获取几乎所有的QnAMakerDialog实现)

关于c# - QnaMakerDialog尝试过多,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49037315/

10-10 13:22