Я новичок в разработке MS Bot.Я пытаюсь разработать бота MS Teams с помощью веб-API и автозапуска в .NET Framework.Как пример кода MS, бот может работать как обычный бот.Теперь я хочу использовать его только в деятельности Команд и разговорах, а не в личной жизниВ качестве предварительной версии .Net Teams Bot Builder v4 SDK , TeamSpecificConversationState, DropNonTeamsActivitiesMiddleware, DropChatActivitiesMiddleware и TeamsMiddleware можно использовать в моем случае разработки.Но я не могу хорошо использовать autofac и Bot Frameworkv4.Ниже приведен мой код:
//setting Bot data store policy to use last write win
//example if bot service got restarted, existing conversation would just overwrite data to store
public static class BotConfig
{
public static void Register(HttpConfiguration config)
{
var builder = new ContainerBuilder();
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
// The ConfigurationCredentialProvider will retrieve the MicrosoftAppId and
// MicrosoftAppPassword from Web.config
builder.RegisterType<ConfigurationCredentialProvider>().As<ICredentialProvider>().SingleInstance();
// Create the Bot Framework Adapter with error handling enabled.
builder.RegisterType<AdapterWithErrorHandler>().As<IBotFrameworkHttpAdapter>().SingleInstance();
// The Memory Storage used here is for local bot debugging only. When the bot
// is restarted, everything stored in memory will be gone.
IStorage dataStore = new MemoryStorage();
//// Create Conversation State object.
//// The Conversation State object is where we persist anything at the conversation-scope.
//TeamSpecificConversationState conversationState = new TeamSpecificConversationState(dataStore);
//builder.RegisterInstance(conversationState).As<TeamSpecificConversationState>().SingleInstance();
var conversationState = new ConversationState(dataStore);
//// Drop all activites not received from Microsoft Teams channel.
//builder.RegisterType<DropNonTeamsActivitiesMiddleware>().As<IMiddleware>().SingleInstance();
//// For TeamContext object, Add Teams Middleware
//builder.Register(c => new TeamsMiddleware(
// new ConfigurationCredentialProvider())).As<IMiddleware>().SingleInstance();
//// Automatically drop all non Team messages.
//builder.RegisterType<DropChatActivitiesMiddleware>().As<IMiddleware>().SingleInstance();
builder.RegisterInstance(conversationState).As<ConversationState>().SingleInstance();
// Register the NextLabsBot as the IBot interface
builder.RegisterType<myBot>().As<IBot>();
var container = builder.Build();
var resolver = new AutofacWebApiDependencyResolver(container);
config.DependencyResolver = resolver;
}
}
код без комментариев может работать как обычный бот, он исходит от MS.
код, закомментированный как «//», является моей попыткой, но он не может работать.
код, комментируемый '////' - это использование SDK и некоторые примечания к моей мысли.
Что можно сделать, чтобы завершить его.Спасибо!