public void ConfigureServices(IServiceCollection services) { // .. commented by brevity // Add connected services var connectedServices = InitBotServices(botConfig); services.AddSingleton(connectedServices); // .. } private BotServices InitBotServices(BotConfiguration botConfig) { var connectedServices = new BotServices(); foreach (var service in botConfig.Services) { switch (service.Type) { case ServiceTypes.QnA: var qna = service as QnAMakerService; var qnaEndpoint = new QnAMakerEndpoint() { KnowledgeBaseId = qna.KbId, EndpointKey = qna.EndpointKey, Host = qna.Hostname }; var qnaMaker = new QnAMaker(qnaEndpoint); connectedServices.QnAServices.Add(qna.Name, qnaMaker); break; } } return connectedServices; }