在最新的bot样本中,我们可以看到该bot被添加到服务集合中,如下所示
services.AddTransient<IBot, MyBot>();
但在较旧的示例中,我们看到了以下方法
services.AddBot<MyBot>(options => { });
在这里,我想了解使用AddTransient()添加bot而不是使用AddBot()添加bot的好处。我知道的是,内部AddBot仅使用AddTransient,然后为什么要使用AddTransient。此链接中的参考备注部分。
查看更多
您可以在源代码中看到,该AddBot方法除了用于自动程序外,还用于将自动程序适配器自动添加到DI以及用于配置与自动程序相关的选项(例如凭据和错误处理)。制作这些样本时,使用Bot Builder v4 SDK的约定有很大不同,并且从bot文件中加载了bot的配置及其凭据。当前使用SDK的约定要容易得多,因为它利用ASP.NET Core从appsettings.json自动加载应用程序的配置。由于我们没有使用AddBot 再者,您会注意到适配器已显式添加到DI,并且可以通过直接访问适配器的属性和方法或派生自己的适配器类来配置错误处理和中间件之类的内容,如示例所示。
AddBot