Бот Microsoft - Почему некоторые примеры ботов отключают предупреждение 1998 - PullRequest
0 голосов
/ 24 апреля 2018

Я новичок в разработке ботов Microsoft, поэтому я начал использовать примеры, опубликованные на Github компанией.Я заметил, что в некоторых примерах классы диалогов отключили предупреждение:

#pragma warning disable 1998

, если удалить строку, я получил ожидаемое сообщение "В асинхронном методе отсутствуют операторы" ожидание "и он будет работать синхронно ...«Это нормально, так как примеры обычно содержат вызовы методов, такие как context.Wait(this.MessageReceivedAsync);, где MessageReceivedAsync () является асинхронным методом.

Я узнал, что подавление предупреждений не является хорошим подходом, и для устранения причины предупрежденияпредпочтительнееУ меня такое чувство, что я как-то здесь упускаю смысл.Я хотел бы понять концепцию, почему разработчик решил использовать здесь отключение предупреждения и вместо этого найти другой способ реализации?Должен ли я делать то же самое, если разрабатываю похожие приложения?

Пример: https://github.com/Microsoft/BotBuilder-Samples/blob/master/CSharp/capability-SimpleTaskAutomation/Dialogs/RootDialog.cs

1 Ответ

0 голосов
/ 24 апреля 2018

Это предупреждение было выставлено из-за того, что этим методом в вашем примере будет выдано предупреждение:

public async Task StartAsync(IDialogContext context)
{
    context.Wait(this.MessageReceivedAsync);
}

Как вы можете видеть, этот метод async, но ожидаемого вызова нетвнутри, отсюда и предупреждение.

Проблема, когда вы пытаетесь это исправить, заключается в том, что эта StartAsync является реализацией IDialog интерфейса Bot Framework, который здесь :

public interface IDialog<out TResult>
{
    /// <summary>
    /// The start of the code that represents the conversational dialog.
    /// </summary>
    /// <param name="context">The dialog context.</param>
    /// <returns>A task that represents the dialog start.</returns>
    Task StartAsync(IDialogContext context);
}

Как видите, метод StartAsync объявлен для асинхронного поведения.

...