C# Bot Builder SDK 3.5.5中的ConnectorStore更改?

C# Bot Builder SDK 3.5.5中的ConnectorStore更改?,c#,botframework,C#,Botframework,我正在将我们的Bot的Bot Builder SDK从3.5.0升级到3.5.5,因为LUIS endpoint在几周内就被弃用了,而且最新的SDK版本似乎有办法指定“LuisAversion” 在升级过程中,我在修改行为以使用LastWriteWins策略实现CachingBotDataStoreConsistencyPolicy时遇到以下错误: 引发异常: Autofac.dll中的“Autofac.Core.Registration.ComponentNotRegisteredExcept

我正在将我们的Bot的Bot Builder SDK从3.5.0升级到3.5.5,因为LUIS endpoint在几周内就被弃用了,而且最新的SDK版本似乎有办法指定“LuisAversion”

在升级过程中,我在修改行为以使用LastWriteWins策略实现CachingBotDataStoreConsistencyPolicy时遇到以下错误:

引发异常:

Autofac.dll中的“Autofac.Core.Registration.ComponentNotRegisteredException”

其他信息:请求的服务“Microsoft.Bot.Builder.Dialogs.Internals.ConnectorStore”尚未注册。要避免此异常,请注册组件以提供服务,使用IsRegistered()检查服务注册,或使用ResolveOptional()方法解析可选依赖项

builder.Register(c=>newcachingbotdatastore(c.Resolve()),
CachingBotDataStoreConsistencyPolicy.LastWriteWins)
.As()
.AsSelf()
.InstancePerLifetimeScope();

这段代码适用于3.5.0,但我不确定处理3.5.5中出现的Autofac错误的最佳方法是什么。对此有什么建议或想法吗?

如您所见,ConnectorStore的注册已更改

要解决此问题,您应该将代码中的
c.Resolve()
更改为
c.ResolveKeyed(typeof(ConnectorStore))

        builder.Register(c => new CachingBotDataStore(c.Resolve<ConnectorStore>(),
            CachingBotDataStoreConsistencyPolicy.LastWriteWins)
            .As<IBotDataStore<BotData>>()                           
            .AsSelf()
            .InstancePerLifetimeScope();