我看过很多文章建议不要使用默认的bot状态数据存储,因为微软肯定会在2018年3月关闭这项服务.
我目前正在开发无状态机器人,不需要任何存储空间.
我试图创造一个假的
internal class DummyDataStore : IBotDataStore<BotData>
{
public DummyDataStore()
{
}
public Task<bool> FlushAsync(IAddress key, CancellationToken cancellationToken)
{
return Task.FromResult(true);
}
public Task<BotData> LoadAsync(IAddress key, BotStoreType botStoreType, CancellationToken cancellationToken)
{
return Task.FromResult(new BotData());
}
public Task SaveAsync(IAddress key, BotStoreType botStoreType, BotData data, CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}
Run Code Online (Sandbox Code Playgroud)
并在global.asax中使用autofac注册它
Conversation.UpdateContainer(
builder =>
{
//Registration of message logger
builder.RegisterType<BotMessageLogger>().AsImplementedInterfaces().InstancePerDependency();
//Registration of dummy data storage
var store = new DummyDataStore();
builder.Register(c => store).As<IBotDataStore<BotData>>().AsSelf().SingleInstance();
});
Run Code Online (Sandbox Code Playgroud)
但它似乎搞乱了上下文而bot并没有响应任何context.wait()方法
我也试过这个:
Conversation.UpdateContainer(
builder => …Run Code Online (Sandbox Code Playgroud) 我的 .NET 4.0 应用程序使用位于 System.Data.Entity.Design.PluralizationServices 中的 PluralizationServices。当我将应用程序转换为 .NET CORE 5.0 时,编译器抱怨:
找不到类型或命名空间名称“PluralizationService”(您是否缺少 using 指令或程序集引用?)
我尝试过使用 System.Data 和 System.Data.Common。
在 .NET 5.0 中哪里可以找到它?