Можете ли вы сказать нам, почему вы хотите передать набор диалогов для класса botservices?этот класс используется только для ссылки на внешние сервисы, такие как QnAMaker и LUIS.Если вы хотите запустить диалог, сделайте это в методе OnTurnAsync класса QnABot.cs.имейте в виду, что метод this, созданный в этом конкретном образце, будет отправлять ответ на каждое сообщение, отправляемое пользователем, даже если они работают через диалог.Вы можете изменить OnTurnAsync таким образом, чтобы первым шагом в диалоге была проверка QnAMaker.Посмотрите пример enterpriseBot, чтобы увидеть, как запустить диалог, а также добавить средство доступа в дочерний диалог.см. следующий фрагмент из класса MainDialog.cs о том, как они добавили средство доступа:
protected override async Task OnStartAsync(DialogContext innerDc, CancellationToken cancellationToken = default(CancellationToken))
{
var onboardingAccessor = _userState.CreateProperty<OnboardingState>(nameof(OnboardingState));
var onboardingState = await onboardingAccessor.GetAsync(innerDc.Context, () => new OnboardingState());
var view = new MainResponses();
await view.ReplyWith(innerDc.Context, MainResponses.Intro);
if (string.IsNullOrEmpty(onboardingState.Name))
{
// This is the first time the user is interacting with the bot, so gather onboarding information.
await innerDc.BeginDialogAsync(nameof(OnboardingDialog));
}
}