Services.AddTransient () Vs Services.AddBot () - PullRequest
2 голосов
/ 05 февраля 2020

В последних образцах ботов мы видим, что бот добавляется в коллекцию сервисов, как показано ниже:

services.AddTransient<IBot, MyBot>();

, но в более старых образцах мы видели ниже подход

services.AddBot<MyBot>(options => { });

Здесь Я пытаюсь понять преимущества добавления бота с помощью AddTransient () по сравнению с использованием AddBot (). Что я знаю, так это то, что внутри AddBot используется только AddTransient, тогда зачем использовать AddTransient. Раздел рекомендуемых замечаний от этой ссылки.

1 Ответ

2 голосов
/ 05 февраля 2020

Вы можете видеть в исходном коде , что методы AddBot используются для автоматического добавления адаптера бота в DI в дополнение к боту и для настройки параметров, связанных с ботом, таких как учетные данные и обработка ошибок. Соглашения об использовании Bot Builder v4 SDK сильно отличались, когда создавались эти образцы, и конфигурация бота вместе с его учетными данными загружалась из чего-то, называемого файлом бота. В настоящее время соглашение об использовании SDK намного проще, поскольку оно использует преимущества ASP. NET Core, автоматически загружающие конфигурацию приложения из настроек приложения. json. Поскольку мы больше не используем AddBot, вы заметите, что адаптер добавлен в DI явно, и вы можете настраивать такие вещи, как обработка ошибок и промежуточное ПО, либо напрямую обращаясь к свойствам и методам адаптера, либо получая свой собственный адаптер класс, как видно из образцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...