由于LUIS端点已在几周后弃用,因此我正在将适用于该机器人的Bot Builder SDK从3.5.0升级到3.5.5,并且最新的SDK版本似乎可以指定“ LuisApiVersion”。
升级期间,在修改行为以将LastWriteWins策略用于CachingBotDataStoreConsistencyPolicy时,出现以下错误:
抛出异常:
autofac.dll中的'Autofac.Core.Registration.ComponentNotRegisteredException'
附加信息:所请求的服务“ Microsoft.Bot.Builder.Dialogs.Internals.ConnectorStore”尚未注册。为避免此异常,请注册一个组件以提供服务,或者使用IsRegistered()检查服务注册,或者使用ResolveOptional()方法解决可选的依赖项。
builder.Register(c => new CachingBotDataStore(c.Resolve<ConnectorStore>(),
CachingBotDataStoreConsistencyPolicy.LastWriteWins)
.As<IBotDataStore<BotData>>()
.AsSelf()
.InstancePerLifetimeScope();
这段代码适用于3.5.0,但是我不确定处理3.5.5时遇到的Autofac错误的最佳方法是什么。关于这个有什么建议或想法吗?
最佳答案
您可以看到here,ConnectorStore的注册已更改。
要解决该问题,您应该将代码中的c.Resolve<ConnectorStore>()
更改为c.ResolveKeyed<IBotDataStore<BotData>>(typeof(ConnectorStore))